有什么方法可以在 gcc 中编译时仅使用编译器设置/标志来禁用 volatile 存储类而不修改底层源代码?
例如
volatile int x;
.. use x ..
需要像写的那样编译:
int x;
.. use x ..
最佳答案
编译使用
gcc -Dvolatile="" ...
以便预处理器将每次出现的 volatile
替换为空字符串。如果您只使用 -Dvolatile
,volatile
将被替换为 1,这会导致编译错误。
因为 volatile
关键字告诉编译器该值可能随时更改并且它永远不应该缓存该值,从工作代码中省略它们可能会导致出现错误(因为编译器有时会处理过时的值)。
关于c - 如何使用编译器的命令行选项禁用 volatile 存储类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13208935/