标签: c gcc
如果变量在volatile int x中定义为file1.c而在extern int x中定义为file2.c(而不是extern volatile int x),会发生什么?编译器是否有机会知道x是易变的,并在file2.c中进行编译。
volatile int x
file1.c
extern int x
file2.c
extern volatile int x
x
答案 0 :(得分:8)
编译器只知道当前的translation unit(基本上是包含所有包含的当前源文件),没有别的。
如果未使用正确的类型声明extern变量,则您将具有未定义的行为。
extern