Глобальная переменная Curiosity

#c #global-variables

#c #глобальные переменные

Вопрос:

Скажем, у меня есть куча функций, которые будут использовать int = price; например. Могу ли я установить это вне int main и всех функций, чтобы все они вызывали его?

Например, здесь я вызвал int price вне main, но будет больше функций, использующих его. Это нормально?

 int price;

int main()
{

cout << price;
return 0;
}
  

Ответ №1:

Хорошо, да. Рекомендуется ОПРЕДЕЛЕННО нет. Старайтесь избегать глобальных переменных на каждом шагу. Также вы должны инициализировать свои переменные.

Комментарии:

1. Но синтаксически говоря, это нормально, верно? Потому что мне нужно было использовать ее для того, что я сделал.

2. @mystycs Синтаксически говоря, это правильно. Но то, что вы сделали, я уверен, что это также можно сделать без глобальных переменных. Под инициализацией я подразумеваю любое значение, которое вы считаете правильным, независимо от того, равно ли оно 0 или чему-то еще, независимо от того, что большинство современных компиляторов делают это за вас. Это считается и является лучшей практикой.

3. Кроме того, глобальные переменные также имеют неприятную привычку сталкиваться с именами

Ответ №2:

это нормально, если price переменная видна там, где вы хотите ее использовать.

если вы хотите использовать эту переменную в другом «модуле компиляции» (другом файле .c), вам нужно будет поместить в начале вашего нового файла: extern int price; , который сообщает компилятору, что он должен использовать price переменную, объявленную в другом месте проекта.

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

Комментарии:

1. Вау, никогда не слышал об этом таким образом.