Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有没有办法在不修改底层源代码的情况下在 gcc 中编译时仅使用编译器设置/标志来禁用易失性存储类?
前任。
volatile int x; .. use x ..
需要像编写一样编译:
int x; .. use x ..
编译使用
gcc -Dvolatile="" ...
这样预处理器就会用volatile空字符串替换每次出现的 。如果只使用-Dvolatile,volatile将被替换为 1,这会导致编译错误。
volatile
-Dvolatile
因为volatile关键字告诉编译器该值可能随时更改并且它不应该缓存该值,所以从工作代码中省略它们可能会导致出现错误(因为编译器有时会处理陈旧的值)。