LiteOS-编程规范:宏
时间:2025-02-12 14:52:05
宏
- 代码片段使用宏隔离时,统一通过#ifdef的方式,例如:
#ifdef LOSCFG_XXX...#endif
- 定义宏时,要使用完备的括号,比如:
#define SUM(a, b) a + b // 不符合本条要求#define SUM(a, b) ((a) + (b)) // 符合本条要求
但是也要避免滥用括号,比如单独的数字或标识符加括号毫无意义:
#define SOME_CONST 100 // 单独的数字无需括号#define ANOTHER_CONST (-1) // 负数需要使用括号#define THE_CONST SOME_CONST // 单独的标识符无需括号
- 包含多条语句的函数式宏的实现语句必须放在do-while(0)中,例如:
#define FOO(x) do { \ (void)printf("arg is %d\n", (x)); \ DoSomething((x)); \} while (0)
- 禁止宏调用参数中出现预编译指令。
- 宏定义不以分号结尾。
support.huaweicloud.com/contribute-LiteOS/zh-cn_topic_0145350121.html