На большинство ваших вопросов ответили здесь. Для остальных:
Какой будет порядок строительства и разрушения?это будет то же самое?
Порядок не отличается от обычных глобальных.Так что это не то же самое, что статический.
При этом я настоятельно призываю вас написать код, который не заботится о порядке.Чем меньше вы полагаетесь на определенный порядок инициализации для любых глобальных переменных, тем лучше.
Могу ли я использовать ключевое слово extern с x в безымянном пространстве имен?
Нет.Чтобы extern
что-то, вы должны быть в состоянии напечатать его имя.И магия безымянного пространства имен в том, что вы не можете ввести его имя.Имя присваивается компилятором.Вы этого не знаете.Поэтому, если вы попытаетесь extern
это сделать, вы вместо этого будете использовать что-то еще.
Если вы поместите безымянное пространство имен в заголовок, каждый включающий его модуль перевода получит свою версию переменной.Все они будут extern
, но будут говорить о другой внешней переменной.