不同編譯器中預定義的宏(__CC_ARM、__ICCARM__、__GNUC__、__TASKING__)


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. 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM