《嵌入式实时操作系统:RT-Thread设计与实现》 —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))
- 点赞
- 收藏
- 关注作者
评论(0)