LiteOS-编程规范:宏

时间:2023-11-01 16:13:31

  • 代码片段使用宏隔离时,统一通过#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