WRITE_ONCE()

WRITE_ONCE(prev->next, new)的作用就是安全地将prev->next指向new!
相当于new = prev->next

#define DO_ONCE(x) do { x; } while(0) #define syslog(log) DO_ONCE( if ((log)) { (log)->locate = __LINE__; } syslog_write(log); ) #define syslog_bin(class,bytes,len) DO_ONCE( syslog_write_bytes((class), (bytes), (len), __CFID__, __LINE__); ) #define syslog_bin_developer(bytes,len) DO_ONCE( syslog_bin(LC_DEVELOPER, bytes, len); ) #define syslog_bin_manufacturer(bytes,len) DO_ONCE( syslog_bin(LC_MANUFACTURER, bytes, len); ) #define syslog_str(class,fmt,args...) DO_ONCE( syslog_write_string_ext((class), __CFID__, __LINE__, fmt, ##args); ) #define syslog_str_direct(class,fmt,args...) DO_ONCE( syslog_write_string_ext_direct((class), __CFID__, __LINE__, fmt, ##args); ) #define syslog_str_user(fmt,args...) DO_ONCE( syslog_str(LC_USER, fmt, args); ) #define syslog_str_developer(fmt,args...) DO_ONCE( syslog_str(LC_DEVELOPER, fmt, args); ) #define syslog_str_manufacturer(fmt,args...) DO_ONCE( syslog_str(LC_MANUFACTURER, fmt, args); ) #define syslog_waterON(zed) DO_ONCE( syslog_str_user("turn on %08X_%d", (zed)->nid, zed_devIdSubID((zed)->id)); ) #define syslog_waterOff(zed) DO_ONCE( syslog_str_user("turn off %08X_%d", (zed)->nid, zed_devIdSubID((zed)->id)); ) 是什么原因导致D:/Work/project/nggw/src/NewGateWay/components/app/wsclient_app/ws_msgHandler.c: In function 'on_reqWorkModeSync': D:/Work/project/nggw/src/NewGateWay/components/utility/sysError.h:188:122: error: expected expression before ')' token 188 | #define syslog_str(class,fmt,args...) DO_ONCE( syslog_write_string_ext((class), __CFID__, __LINE__, fmt, ##args); ) | ^ D:/Work/project/nggw/src/NewGateWay/components/utility/sysError.h:182:38: note: in definition of macro 'DO_ONCE' 182 | #define DO_ONCE(x) do { x; } while(0) 报错
08-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值