#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. Вау, никогда не слышал об этом таким образом.