#define语句后面加分号(转载)

博文一

转载自:https://www.sohu.com/a/366877346_298038

为什么一般来说#define后面没有分号?

所谓#define语句后面一般没有分号的原因在于,将要替换的字符串还原之后,导致还原位置的语句出现问题,因此才使得后面不能有分号。

也就是说,如果替换之后,语法正常,其实是可以的(注意空格问题)。

//来源:公众号【编程珠玑】

# include<stdio.h>

# defineNUM 1024;

intmain( void)

{

inta = NUM;

printf( "%dn",a);

return0;

}

我在#define语句的后面加了个分号,替换到原处之后,语句变成了:

inta = 1024;;

显然这并不会有语法问题,只是显得非常累赘;并且这也只是碰巧不会有问题。

博文二

转载摘抄自:https://blog.csdn.net/ace_wty/article/details/109657344

#define NRF_BLE_SCAN_DEF(_name)                            \
    static nrf_ble_scan_t _name;                           \
    NRF_SDH_BLE_OBSERVER(_name ## _ble_obs,                \
                         NRF_BLE_SCAN_OBSERVER_PRIO,       \
                         nrf_ble_scan_on_ble_evt, &_name)  \

使用的是拼接符 \ 拼接成一行。作用是以免语句过长,看见到博主那篇文章我认为其实这里是可以拆分成两个程序句的。

就是static nrf_ble_scan_t _name;和   NRF_SDH_BLE_OBSERVER(_name ## _ble_obs,  NRF_BLE_SCAN_OBSERVER_PRIO,   nrf_ble_scan_on_ble_evt, &_name)  

让人难理解的是中间static nrf_ble_scan_t _name;

其实这个就是的定义一个 nrf_ble_scan_t类型的变量_name没别的,这个理解了其他的就好理解了,其他都都可以进行替换就完事了。

 

版权声明:本文摘抄自互联网各个其他人的原创文章,非本人原创文章,如有侵权请及时联系删除,转载请先咨询原文博主,并请附上原文出处链接和本声明。

 

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值