9

我正在通过 stm 研究 STM32l151rct6a,我偶然发现了这些 MACRO 定义

__CC_ARM, __ICCARM__, __GNUC__, __TASKING__

有谁知道他们的意思?

4

3 回答 3

13

这些是 ARM 处理器的不同编译器,可能这些宏用于在可由多个编译器编译的代码中隐藏与编译器相关的内容。

于 2013-07-10T13:57:23.867 回答
2

它们是用于识别用于构建代码的编译器的宏。

可以在http://sourceforge.net/p/predef/wiki/Home/找到此类宏的列表以及用于识别架构和操作系统等的其他宏。然而,它并没有全面涵盖来自小型嵌入式系统供应商(例如 Tasking 和 Imagecraft)的许多编译器。

于 2013-07-11T09:42:51.713 回答
1

这些是编译器特定的 MACROS,并在编译器代码中定义。例如,__ICC 用于 IAR,__GNU 用于 GNU 编译器。在 BSP 部分中给出了一些代码,用于 STM 平台,它们依赖于编译器。

于 2013-07-10T13:57:45.473 回答