Мне интересно, как и когда stati c встроенные данные инициализируются в C ++ (например, в g cc или clang). Я знаю, что это вопрос, определенный c для некоторой архитектуры и не связанный со стандартом C ++.
Я знаю, что для статических / глобальных не встроенных данных g cc использует .init
и .fini
разделы для создания и уничтожения объектов с такими квалификаторами, но это не сработает для встроенных данных c, потому что они могут быть инициализированы во многих единицах перевода, так что раздел init
будет иметь много инициализаций для один объект, который является неправильным.
Кто-нибудь знает, как работает реализация?
Чтобы было ясно, я заинтересован в реализации инициализации этих встроенных переменных.