powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / static variable
4 сообщений из 4, страница 1 из 1
static variable
    #38410767
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В книге Архангельского про Builder было написано, что приставка static- означает, что память под переменную объявленную внутри функции будет освобождаться при завершении всей программы, а не самой функции. Это очень замечательно, но для меня остается непонятным почему нижепреведенный код вообще работает. Почему при первом вызове функции и объвлении переменной она автоматически принимает 0 (даже если строка имеет вид static unsigned int NumbOfParameter;) и при следующем вызове этой функции строка объявления(обнуления) переменной просто напросто игнорируется.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if(Key==13)
{
static unsigned int NumbOfParameter=0;
switch(NumbOfParameter)
{
case 0:
x=InputParameter(Edit1,Label1,"Ââåäèòå Y:",NumbOfParameter);
break;
case 1:
y=InputParameter(Edit1,Label1,"Ââåäèòå Z:",NumbOfParameter);
break;
case 2:
z=InputParameter(Edit1,Label1,'\0',NumbOfParameter);
NumbOfParameter=0;
Button1->Enabled=true;
Edit1->Visible=false;
Edit1->Enabled=false;
return;
}
}
}
...
Рейтинг: 0 / 0
static variable
    #38410778
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18Почему
Потому что компилятор выкинул из кода эту инициализацию и уже на этапе компиляции записал
в сегмент данных ноль в позицию, отведённую под эту переменную.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
static variable
    #38410781
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть это вполне нормально, что эта запись работает таким образом и она будет одинаково интерпретироваться под всеми С++ компиляторами?
...
Рейтинг: 0 / 0
static variable
    #38410788
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / static variable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]