zoukankan      html  css  js  c++  java
  • ARM编译器中预定义的宏

    arm系列目前支持三大主流的工具链,realview的armcc,iar ewarm的iccarm,gnu的gcc,编译器在编译的时候会预定义一些宏,这些宏在工程中起到不可或缺的作用。

    例如

    /* define compiler specific symbols */
      #if defined ( __CC_ARM )
         #define __ASM __asm /*!< asm keyword for armcc */
         #define __INLINE __inline /*!< inline keyword for armcc */
     #elif defined ( __ICCARM__ )
         #define __ASM __asm /*!< asm keyword for iarcc */
         #define __INLINE inline /*!< inline keyword for iarcc. Only
                                       avaiable in High optimization mode! */
         #define __nop __no_operation /*!< no operation intrinsic in iarcc */
     #elif defined ( __GNUC__ )
         #define __ASM asm /*!< asm keyword for gcc */
         #define __INLINE inline /*!< inline keyword for gcc
     #endif
    根据不同的工具链,在c文件和汇编文件中inline和asm关键字有不同的写法,使用宏定义替代,增强代码的可移植性,根据不同的编译器在预处理是产生适用于该工具链的代码。
  • 相关阅读:
    OCP-1Z0-052-V8.02-167题
    OCP-1Z0-052-V8.02-172题
    OCP-1Z0-052-V8.02-178题
    OCP-1Z0-052-V8.02-180题
    OCP-1Z0-052-V8.02-84题
    OCP-1Z0-052-V8.02-86题
    OCP-1Z0-052-V8.02-85题
    OCP-1Z0-052-V8.02-83题
    OCP-1Z0-052-V8.02-76题
    OCP-1Z0-052-V8.02-75题
  • 原文地址:https://www.cnblogs.com/ideawu1001/p/3465967.html
Copyright © 2011-2022 走看看