是否最好使用全局变量,例如:
int bumNum;
int extraNum;
bool isIt;
void setup()
{
std::cin >> bumNum;
std::cin >> extraNum;
isIt= false;
}
void anotherFunc()
{
//do something with the global variables
}
int main()
{
setup();
anotherFunc();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
或局部变量,例如:
void setup(int& bumNum, int& extraNum, bool& isIt)
{
std::cin >> bumNum;
std::cin >> extraNum;
isIt= false;
}
void anotherFunc(int& bumNum, int& extraNum, bool& isIt)
{
//do something with the global variables
}
int main()
{
int bumNum;
int extraNum;
bool isIt;
setup(bumNum, extraNum, isIt);
anotherFunc();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
第一种选择是与其他选项相比较少的输入.问题是全局变量并不真正被视为朋友:/哦,并且在第二个选项中发生了更多的初始化.
使用全局变量,您将引入一个全局状态,该状态本身具有各种问题:
并发问题(当你添加多线程时,你必须开始考虑用某种互斥体来保护那些),
它没有规模,
随着时间的推移,当你增加这些变量的数量时,对于哪些函数使用哪些变量,它变得越来越混乱,
仅举几个.
要回答您的问题 - 尽可能在全局状态下使用参数.