在kernel/include/los_typedef.h
L90-L91
#define VOID void
#define STATIC static
为什么要宏定义?直接使用void
和static
不是更好吗?
(望大佬指教)
这东西,实践中,总要把一些标准基础类型定义为自己的类型。也可能是为了保持格式的统一。总之只有设计者才知道。
类比:int8_t,int16_t,int32_t,int64_t uint8_t,uint16_t,uint32_t,uint64_t
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
有些老的编译器不支持部分关键字,或者芯片厂商提供的适用于特定芯片的编译器不支持。
单纯的 define 实际上毫无意义,或者为了方便后续支持扩展。
看设计人员的意图吧,如果他想支持这些编译器,那还算有意义,否则就是不知道从哪里抄来的无意义代码。
主要是为了支持不同芯片厂商的编译器,方便扩展。当前只用了arm平台和llvm,这里确实没有特别的意义了。但是从整体项目的命名和延续性,该定义会继续保留。
估计只有作者才知道是什么原因吧,不过我觉得这个是看起来与INT, INT32, UINT32, LONG
之类的风格上保持一致了,估计早期代码这么定义风格的,就一直延续下来了。另一方面就像前面几位回答的,可以灵活定义它们的值进行其它目的的需要,比如将STATIC定义成空的话就可以对原先static的方法进行函数级的单元测试了
方便不同的芯片厂的编译器扩展吧
登录 后才可以发表评论