将volatile int变量定义为extern int

i48*_*486 1 c gcc

如果将变量定义为volatile int xin file1.cextern int xin file2.c(而不是extern volatile int x),会发生什么?编译器是否有机会知道它x是volatile并且在这里编译file2.c.

Som*_*ude 8

编译器只知道当前的转换单元(基本上是包含所有包含的当前源文件),没有别的.

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