LINUX.ORG.RU

История изменений

Исправление Norong, (текущая версия) :

У меня возник вопрос про статические внутренние (локальные) переменные. Я понял так: Когда я объявляю такую переменную внутри функции, под неё выделяется память, и вместо того, чтобы содержать мусор, эта переменная инициализируется нулями. А если я её хочу проинициализировать чем-то другим, то я её внутри функции определяю вот так:

static int buf = 4;

и при первом входе в функцию под неё выделится память, будет выполнена инициализация нужным мне значением, а при последующих входах в функцию эта строка с инициализацией уже не будет иметь значения, потому что переменная уже была определена и проинициализирована.

Я правильно всё это понимаю, или есть какие-то хитрости?

Исправление Norong, :

У меня возник вопрос про статические внутренние (локальные) переменные. Я понял так: Когда я объявляю такую переменную внутри функции, она не мусор содержит, а нулями инициализируется. А если я её хочу проинициализировать чем-то другим, то я её внутри функции определяю вот так:

static int buf = 4;

и при первом входе в функцию под неё выделится память, будет выполнена инициализация нужным мне значением, а при последующих входах в функцию эта строка с инициализацией уже не будет иметь значения, потому что переменная уже была определена и проинициализирована.

Я правильно всё это понимаю, или есть какие-то хитрости?

Исправление Norong, :

У меня возник вопрос про статические внутренние (локальные) переменные. Я понял так: Когда я объявляю такую переменную внутри функции, она не мусор содержит, а нулями инициализируется. А если я её хочу проинициализировать чем-то другим, то я её внутри функции определяю вот так:

static int buf = 4;

и она при первом входе в функцию проинициализируется, чем мне надо, а при последующих входах в функцию эта строка с инициализацией уже не будет иметь значения, потому что переменная уже была определена и проинициализирована.

Я правильно всё это понимаю, или есть какие-то хитрости?

Исходная версия Norong, :

У меня возник вопрос про статические внутренние (локальные) переменные. Я понял так: Когда я объявляю такую переменную внутри функции, она ведь не мусор содержит, а нулями инициализируется. А если я её хочу проинициализировать чем-то другим, то я её внутри функции определяю вот так:

static int buf = 4;

и она при первом входе в функцию проинициализируется, чем мне надо, а при последующих входах в функцию эта строка с инициализацией уже не будет иметь значения, потому что переменная уже была определена и проинициализирована.

Я правильно всё это понимаю, или есть какие-то хитрости?