1、先看下如下代碼
#if defined ( __CC_ARM ) #define __ASM __asm /*!< asm keyword for ARM Compiler */ #define __INLINE __inline /*!< inline keyword for ARM Compiler */ #elif defined ( __ICCARM__ ) #define __ASM __asm /*!< asm keyword for IAR Compiler */ #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ #elif defined ( __GNUC__ ) #define __ASM __asm /*!< asm keyword for GNU Compiler */ #define __INLINE inline /*!< inline keyword for GNU Compiler */ #elif defined ( __TASKING__ ) #define __ASM __asm /*!< asm keyword for TASKING Compiler */ #define __INLINE inline /*!< inline keyword for TASKING Compiler */ #endif
2、這些宏分別代表什么平台?
__CC_ARM對應的平台是:ARM RealView
RealView,是一套包含編譯、調試和模擬的開發工具,需結合開發環境如uvision、eclipse或者CodeWarrior,形成集成開發環境來使用。
__ICCARM__對應的平台是:IAR EWARM
Embedded Workbench for ARM 是IARSystems 公司為ARM 微處理器開發的一個集成開發環境(下面簡稱IAR EWARM)。比較其他的ARM 開發環境,IAR EWARM 具有入門容易、使用方便和代碼緊湊等特點
__GNUC__對應的平台是:GNU Compiler Collection
GCC的初衷是為GNU操作系統專門編寫的一款編譯器。GNU系統是徹底的自由軟件
__TASKING__對應的平台是:Altinum Designer
Altium Designer 是原Protel軟件開發商Altium公司推出的一體化的電子產品開發系統,主要運行在Windows操作系統。這套軟件通過把原理圖設計、電路仿真、PCB繪制編輯、拓撲邏輯自動布線、信號完整性分析和設計輸出等技術的完美融合,為設計者提供了全新的設計解決方案,使設計者可以輕松進行設計,熟練使用這一軟件使電路設計的質量和效率大大提高
3、這些宏分別代表什么含義?
以__GNUC__為例說明:
GNU C預定義了一系列的宏,這些宏都是以雙下划線開始的。
__GNUC__代表的主版本號。官方的說明:These macros are defined by all GNU compilers that use the C preprocessor: C, C++, Objective-C and Fortran.