__CC_ARM,__ ICC __,__ GNUC__和__TASKING__宏是什么意思?
我正在通过stm研究STM32l151rct6a,我偶然发现了这些MACRO定义
__CC_ARM, __ICCARM__, __GNUC__, __TASKING__
有谁知道他们的意思?
这些是ARM处理器的不同编译器,可能这些宏用于隐藏编译器相关的东西,这些代码可由多个编译器编译。
-
ICCARM
– > IAR (还会有一个宏__IAR_SYSTEMS_ICC__
,设置为编译器平台版本 -
__IMAGECRAFT__
– > Imagecraft C (另见下面的Clifford评论 – 还有一个宏__ICC_VERSION__
,请参阅pdf文档 ) - 任务 – > 任务
-
__CC_ARM
– > ARM(RealView)编译器 -
__GNUC__
– > gcc
它们是用于标识用于构建代码的编译器的宏。
可以在http://sourceforge.net/p/predef/wiki/Home/找到这些宏的列表,以及用于识别体系结构和操作系统等的其他宏。 然而,它并未全面涵盖来自较小嵌入式系统供应商(例如Tasking和Imagecraft)的许多编译器。
这些是编译器特定的MACROS并在编译器代码中定义。例如__ICC用于IAR而__GNU用于GNU编译器。在BSP部分中为STM平台提供了一些依赖于编译器的代码。