define的高级用法

关注、星标公众号,不错过精彩内容

来源:嵌入式大杂烩

一、宏的定义与撤销

需要注意的是:

(1)宏定义应注意添加括号,这样语义会比较清晰。

(2)使用#undef可以撤销宏定义。

(3)引号中的宏定义不会被替换。

(4)宏定义的宏名必须是合法的标识符。

(5)宏定义中单、双引号必须成对出现。

二、带有参数的宏定义

需要注意的是:

(1)宏调用时参数的个数要与定义时相同。

三、跨行的宏定义,使用反斜杠 分隔

四、三个特殊符号:#,##,#@

五、常见的宏定义

1、防止头文件被重复包含

2、得到指定地址上的一个字节值或字值

3、得到一个field在结构体(struct)中的偏移量

4、得到一个结构体中field所占用的字节数

5、得到一个变量的地址(word宽度)

6、将一个字母转换为大写

7、判断字符是不是10进制的数字

8、判断字符是不是16进制的数字

9、防止溢出的一个方法

10、返回数组元素的个数

‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧END‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191006A07SCS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券