4

有没有办法在不修改底层源代码的情况下在 gcc 中编译时仅使用编译器设置/标志来禁用易失性存储类?

前任。

volatile int x;
.. use x ..

需要像编写一样编译:

int x;
.. use x ..
4

1 回答 1

2

编译使用

gcc -Dvolatile="" ...

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

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

于 2012-11-03T18:03:28.390 回答