c - 有什么理由我不应该对 C 中的所有变量和函数声明使用 "volatile"关键字?

标签 c

我读到,C 中的 volatile 关键字用于向编译器指定可以更改声明的变量或函数的值,而无需程序本身对其进行更改。

鉴于我的程序始终由操作系统运行(操作系统可以更改这些值而不需要程序更改它们),是否有任何理由不在所有变量和函数声明中使用 volatile 关键字?

最佳答案

操作系统不会更改您的变量,除非您要求它这样做(通过涉及操作系统的某些函数调用)。

不要到处使用 volatile 。它将降低程序性能,因为它强制所有变量始终从内存中更新。因此,您不会从缓存中受益,也不会从正常的编译器优化中受益。

实际上,您很少会使用 volatile 。阅读另一个问题的答案以了解更多信息:https://stackoverflow.com/a/246148/4386427

关于c - 有什么理由我不应该对 C 中的所有变量和函数声明使用 "volatile"关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61982810/

相关文章:

c - 我在输出文件中收到奇怪的符号而不是适当的字母

c - 使用 C 处理 Linux 中的进程

c - Flash Builder 4.6 native 扩展错误

c - 如何生成具有相同字符数的单词数?

c - 如何解决Eclipse CDT中的 "Undefined reference to function"?

c - "fork()"后printf异常

c - 为什么非常简单的 Hello World 程序没有输出?

c - 如果条件为假,则无操作的函数式宏

c++ - 函数main(int argc, char *argv[])中的参数argv

c++ - 将字节数组转换为编码字符串