Я читал о SIOF из книги, и он привел пример:
//file1.cpp
extern int y;
int x=y+1;
//file2.cpp
extern int x;
int y=x+1;
Теперь мой вопрос:
В приведенном выше коде, будут ли выполняться следующие вещи?
- при компиляции файла file1.cpp компилятор оставляет y так, как он есть i.e не выделяет для него хранилище.
- компилятор выделяет хранилище для x, но не инициализирует его.
- При компиляции файла file2.cpp компилятор уходит из x, так как он не выделяет для него хранилище. Компилятор
- выделяет хранилище для y, но не инициализирует его.
- При связывании file1.o и file2.o теперь давайте сначала инициализировать файл file2.o, так что теперь: Получает ли x начальное значение 0? или не инициализируется?