将volatile int变量定义为extern int

时间:2017-02-22 14:22:19

标签: c gcc

如果变量在volatile int x中定义为file1.c而在extern int x中定义为file2.c(而不是extern volatile int x),会发生什么?编译器是否有机会知道x是易变的,并在file2.c中进行编译。

1 个答案:

答案 0 :(得分:8)

编译器只知道当前的translation unit(基本上是包含所有包含的当前源文件),没有别的。

如果未使用正确的类型声明extern变量,则您将具有未定义的行为。