完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
9个回答
|
|
|
|
|
|
楼主,我们探讨一下。我一般使用的时候前面是表达式(a==1)?A:B;从理论上来分析,a==1这里是一个表达式,这样改一下是否可以?
|
|
|
|
绝对地址赋值,如何?
|
|
|
|
这样改一下: #define Pick(a,A,B) (a)?(A)B)
|
|
|
|
|
|
|
|
本帖最后由 与龙共舞 于 2018-6-28 13:42 编辑 跪谢 搞C这么久 还不知道这个知识 太犀利了 1 #include 2 int A,B,C; 3 #define Pick_0 A 4 #define Pick_1 B 5 //#define Pick(a) (a)?Pick_1ick_0 ------这是不行的! 6 #define Pick(a) Pick_##a ------------------成功! 7 void main() 8 { 9 printf("%dt%dt%dn",A,B,C); 10 Pick(1)=1; 11 12 printf("%dt%dt%dn",A,B,C); 13 } 14 我真的是第一次看到这个做法 转义 的 #define Pick(a) Pick_##a 可以 #define Pick(a) Pick_(a)不行 |
|
|
|
|
|
|
|
可以的 你这是正经方法 1 #include 2 int A,B,C; 3 //#define Pick(a) * ( (a)?(&A)&B))-----OK 4 #define Pick(a) (a)?(A)B)--------------FAIL 5 void main() 6 { 7 printf("%dt%dt%dn",A,B,C); 8 Pick(1)=1; 9 10 printf("%dt%dt%dn",A,B,C); 11 } 12 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
991 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
970 浏览 2 评论
2080 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1177 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1599 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 05:10 , Processed in 1.030533 second(s), Total 90, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号