В VC++ 2008 существует серьезная разница в инициализации статической локальной переменной и статического локального объекта. Статическая локальная переменная инициализируется перед main(), и ее инструкция определения внутри функции пропускается. Статический локальный объект инициализируется значением 0 перед main(), и его оператор определения внутри функции выполняется только один раз. Конструктор запускается, и объект инициализируется с помощью соответствующего значения. Все это можно увидеть в режиме отладки. Соответствует ли это решение существующему стандарту C++?статическая локальная переменная и статическая локальная инициализация объекта
0
A
ответ
1
От http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf:
Каждый объект статической продолжительности хранения должна быть нулевой инициализируется при запуске программы перед любой другой инициализации происходит. [Примечание: в некоторые случаи, дополнительная инициализация делается позже. -end note]
Смежные вопросы
- 1. Локальная статическая переменная инициализация потокобезопасен
- 2. Статическая локальная переменная в golang
- 3. Google Test и статическая локальная переменная
- 4. Статическая локальная переменная в C++ 11?
- 5. (локальная) статическая инициализация разрешена для премателей?
- 6. - локальная статическая переменная, предоставляемая встроенными компиляторами?
- 7. таблица символов локальная статическая переменная name
- 8. Локальная переменная или статическая переменная или глобальная переменная
- 9. локальная статическая переменная с использованием значений глобальных структурных адресов
- 10. Удаляет массив, который хранится как статическая локальная переменная, и как?
- 11. gcc 4.7.1 Статическая локальная инициализация на C++ висит
- 12. C++ статическая локальная инициализация переменных в dll вызывает _CrtIsValidHeapPointer exception
- 13. Функция-Локальная статическая переменная для Unique Id поколения
- 14. Функция-Локальная переменная Static Const Инициализация семантики
- 15. Android и Java Статическая переменная Инициализация
- 16. Статическая переменная-член C++ и ее инициализация
- 17. Статическая инициализация
- 18. Статическая инициализация локальных переменных
- 19. статическая переменная vs не статическая переменная
- 20. Статическая функции и не статическая переменная
- 21. статическая инициализация переменных java
- 22. Локальная переменная Lisp Anonymous Локальная переменная
- 23. Рекурсия и статическая переменная
- 24. создание объекта как локальная переменная
- 25. Статическая инициализация в Go?
- 26. Java - статическая инициализация
- 27. Статическая локальная таблица рассылки с вызовами OO в пределах замыканий
- 28. Что такое статическая глобальная переменная?
- 29. Статическая переменная класса и статическая переменная в C++
- 30. g ++, статическая инициализация и -nostdlib
Пожалуйста, укажите точный код, вызывающий озабоченность. –