《嵌入式实时操作系统:RT-Thread设计与实现》 —3.7 常见宏定义说明

举报
华章计算机 发表于 2019/11/24 11:27:43 2019/11/24
【摘要】 本节书摘来自华章计算机《嵌入式实时操作系统:RT-Thread设计与实现》一书中第3章,第3.7节,作者是邱祎 熊谱翔 朱天龙 。

3.7 常见宏定义说明

在RT-Thread中经常使用一些宏定义,下面列出Keil编译环境下一些常见的宏定义。

(1)rt_inline,定义如下,static关键字的作用是令函数只能在当前的文件中使用;inline表示内联,用static修饰后,在调用函数时会建议编译器进行内联展开。

#define rt_inline                   static __inline

(2)RT_USED,定义如下,该宏的作用是向编译器说明这段代码有用,即使函数中没有调用也要保留编译。例如,RT-Thread自动初始化功能使用了自定义的段,使用RT_USED会将自定义的代码段保留。

#define RT_USED                     __attribute__((used))

(3)RT_UNUSED,定义如下,表示函数或变量可能不使用,这个属性可以避免编译器产生警告信息。

#define RT_UNUSED                   __attribute__((unused))

(4)RT_ WEAK,定义如下,常用于定义函数,编译器在链接函数时会优先链接没有该关键字前缀的函数,如果找不到则链接由weak修饰的函数。

#define RT_WEAK                     __weak

(5)ALIGN(n),定义如下,其作用是在给某对象分配地址空间时,将其存放的地址按照n字节对齐,这里n可取2的幂次方。字节对齐的作用不仅是便于CPU快速访问,同时合理利用字节对齐可以有效地节省存储空间。

#define ALIGN(n)                    __attribute__((aligned(n)))

(6)RT_ALIGN(size, align),定义如下,其作用是将size提升为align定义的整数的倍数,例如,RT_ALIGN(13, 4)将返回16。

#define RT_ALIGN(size, align)      (((size) + (align) - 1) & ~((align) - 1))


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。