82
3114
6897
荣誉版主
无情的代码机器
21cns*** 发表于 2025-3-18 16:51 这里的参数加上看看呢 #define main(x) main(x){_m();while(1);sprintf(0, "0");}; void _m(x)
使用道具 举报 送花
15
1338
3872
论坛元老
erci*** 发表于 2025-3-18 17:21 你对这段代码理解有误~这个宏定义里面不需要x,这个x传不传都是void 宏只是替换功能,这个宏替换过去是这 ...
780
1万
管理员
116
2808
7102
版主
21cns*** 发表于 2025-3-19 19:56 为什么要用while(P0|!P0),不能写成while(0)吗?
王*** 发表于 2025-3-19 19:58 是不想让代码实际执行到最后的sprintf而已,只需要这个语句存在。 具体机制我也不是很清楚,只能说从结果 ...
21cns*** 发表于 2025-3-19 20:19 我测试while(0)也可以,并且比while(P0|!P0)编译结果小20字节。
王*** 发表于 2025-3-19 20:49 while(0)的话有可能执行到sprintf了 实际是并不想让代码执行过去的,至于多了点字节,不是很多的情况下问 ...
21cns*** 发表于 2025-3-19 23:31 调用_m()即原来的main,原来的main中有while(1),所以while(P0|!P0)永远不会被执行的吧 main(x)
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )
GMT+8, 2025-9-17 06:09 , Processed in 0.154673 second(s), 110 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.