c - 如何使用编译器的命令行选项禁用 volatile 存储类?

标签 c linux gcc

有什么方法可以在 gcc 中编译时仅使用编译器设置/标志来禁用 volatile 存储类而不修改底层源代码

例如

volatile int x;
.. use x ..

需要像写的那样编译:

int x;
.. use x ..

最佳答案

编译使用

gcc -Dvolatile="" ...

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

因为 volatile 关键字告诉编译器该值可能随时更改并且它永远不应该缓存该值,从工作代码中省略它们可能会导致出现错误(因为编译器有时会处理过时的值)。

关于c - 如何使用编译器的命令行选项禁用 volatile 存储类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13208935/

相关文章:

c - 在无法识别 ## 的编译器上吞下可变参数宏中的逗号

C 中内存读写的自定义处理

c - 是否有 SetWindowPos 的 Linux 等价物?

strnlen可以用memchr实现吗?

c - 设置值等于自身

c - 从 stdin 获取奇怪的输出读数

linux - 从 bash 并行运行多个脚本而不将输出打印到控制台

arrays - 如何将数组传递给 bash shell 脚本?

Linux Grep 增量

gcc - golang 在使用和不使用 cgo 进行构建时使用的汇编程序