博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ARM编译器中预定义的宏
阅读量:6907 次
发布时间:2019-06-27

本文共 785 字,大约阅读时间需要 2 分钟。

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关键字有不同的写法,使用宏定义替代,增强代码的可移植性,根据不同的编译器在预处理是产生适用于该工具链的代码。

转载于:https://www.cnblogs.com/ideawu1001/p/3465967.html

你可能感兴趣的文章
Fiddler如何模拟弱网环境进行测试
查看>>
简单介绍数据流动的控制
查看>>
GYM 101502I. Move Between Numbers
查看>>
Win10无法启动软件提示MSVCP110.dll丢失
查看>>
面向切面和面向对象的关系
查看>>
hdu 2032 杨辉三角
查看>>
Centos7安装python3和pip3
查看>>
spring集合类型注入
查看>>
EnumMap 两种使用方式的比较
查看>>
smarty课程---smarty3的安装和使用
查看>>
m_Orchestrate learning system---mo系统权限思考(如何实现以及注意什么)
查看>>
Dcloud课程8 开心一刻应用如何实现
查看>>
html5--2.9新的布局元素(5)-hgroup/address
查看>>
jar包和war包的介绍和区别
查看>>
jQuery.获取过滤点
查看>>
64位Windows系统下32位应用程序连接MySql
查看>>
js 类似发微博或者微信朋友圈的时间显示 刚刚 几天前
查看>>
Oracle10gr2 开机自启动脚本
查看>>
netty websocket
查看>>
SpringMVC单文件上传、多文件上传、文件列表显示、文件下载
查看>>