【发布时间】:2015-02-27 12:14:28
【问题描述】:
在 C 中,我可以访问自动 volatile 变量而无需先对其进行初始化,还是它总是导致未定义的行为?
例如,在某些映射到 volatile 变量的硬件设备中,初始化变量无论如何都没有意义,甚至可能被禁止。
【问题讨论】:
-
如何声明变量?它是否使用一些编译器扩展进行映射?还是你在使用指针?
-
如果硬件寄存器映射到变量,那么我非常怀疑这些变量是否具有自动存储持续时间。因此,这个问题没有意义。请给出您的意思的示例代码。
-
映射到硬件设备的
volatile变量不会是automatic。 -
为什么看不懂?它不一定是 UB。
-
@MartinJames 因为它是一个未初始化的变量,具有不确定的值。使用具有不确定值的变量会导致未定义的行为
标签: c volatile undefined-behavior