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关键字有不同的写法,使用宏定义替代,增强代码的可移植性,根据不同的编译器在预处理是产生适用于该工具链的代码。
  • 相关阅读:
    Execution Context(EC) in ECMAScript
    Prototype Chain
    一次websocket的抓包体验
    nodejs 解析 base64 文本
    curl常用命令行总结
    nodejs stream基础知识
    typedarrays splice
    nodejs stream & buffer 互相转换
    nodejs buffer 总结
    ajax stream 一边下载二进制数据一边处理
  • 原文地址:https://www.cnblogs.com/ideawu1001/p/3465967.html
Copyright © 2011-2022 走看看