如何使用编译器的命令行选项禁用易失性存储类?

时间:2012-11-03 11:58:39

标签: c linux gcc

有没有办法在gcc 中编译时只使用编译器设置/标志来禁用volatile存储类而不修改底层源代码

实施例

volatile int x;
.. use x ..

需要像编写一样进行编译:

int x;
.. use x ..

1 个答案:

答案 0 :(得分:2)

使用

进行编译
gcc -Dvolatile="" ...

以便预处理器将每个volatile替换为空字符串。如果您只使用-Dvolatilevolatile将替换为1,这将导致编译错误。

因为volatile关键字告诉编译器该值可能在任何时候发生变化并且它永远不会缓存该值,所以从工作代码中省略它们可能会导致出现错误(因为编译器有时会在陈旧时工作)值)。