Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > static переменные


Автор: Artemon 28.1.2011, 09:37
1. Где распологаются статические переменные созданные внутри блока ?
2. Где распологаются статические переменные созданные глобально ?

В стеке ? в Heap ?

Автор: Earnest 28.1.2011, 11:08
И те и другие в специальной секции. И это не хип и не стек, конечно.

Автор: Artemon 28.1.2011, 11:14
А что за секция такая ? И как она называется ?

Автор: mes 28.1.2011, 11:51
http://en.wikipedia.org/wiki/Data_segment

Автор: sergioK1 4.2.2011, 13:44
Локальность статика это для scope visibility на уровне компайлера, 
асемблеру,в который код компилируеться, все равно как это прописали , лосально в функции или нет ,

Автор: Earnest 4.2.2011, 18:19
Ну не совсем, если статическая переменная инициализируется неконстантым выражением. Глобальная статическая переменная инициализируется (т.е. выражение выполняется) сразу после загрузки, но до main. А если переменная объявлена внутри функции - только при первом доступе туда. Стало быть и код компилируется разный.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)