file1.cpp
#include <iostream>
extern int u;
int i=9;
int j=i+9;
int main()
{
std::cout<<u;
return 0;
}
file2.cpp
extern int j;
int u=j+9;
Результат равен u = 9, но не 27
Это показывает, что j инициализируется дважды - сначаланоль (из-за которого variable u
получить значение 9), а затем с 18
Возможно ли это ??Мое значение для инициализации здесь разрушено.
Я также пытаюсь сделать variable j
константой, чтобы увидеть, что будет дальше
file1.cpp // после изменения j на константу
extern int u;
int i=9;
extern const int j=i+9;
Это имеет тот же вывод, что и раньше.
Однако, если я изменю int j=i+9;
(в file1.cpp) на int j=9;
Удивительно, но я получил правильные значения, то есть u = 18;