修改C/C++源码而不改变可执行文件并不容易 - 可打印的版本 +- WeHack BBS (https://bbs.wehack.space) +-- 版块: 计算机技术 (https://bbs.wehack.space/forum-5.html) +--- 版块: 程序设计讨论区 (https://bbs.wehack.space/forum-14.html) +--- 主题: 修改C/C++源码而不改变可执行文件并不容易 (/thread-334.html) |
修改C/C++源码而不改变可执行文件并不容易 - vimacs - 03-29-2022 我本来想着加些条件编译宏,不改变最终代码,但产生的二进制文件不同。 我想到 __LINE__ 会因为代码插入改变源码行号,导致代码不同,但是代码里没有用到它。之后我直接用预处理器产生预处理后的文件,才发现原来 assert 也会引进行号。 查 assert 的文档,发现定义 NDEBUG 宏可以阻止 assert 生成代码,于是可以使可执行文件不变。 |