使用全局变量或几个参数?

Dip*_*Dip -4 c++

是否最好使用全局变量,例如:

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)

第一种选择是与其他选项相比较少的输入.问题是全局变量并不真正被视为朋友:/哦,并且在第二个选项中发生了更多的初始化.

Jac*_*mok 8

使用全局变量,您将引入一个全局状态,该状态本身具有各种问题:

  • 并发问题(当你添加多线程时,你必须开始考虑用某种互斥体来保护那些),

  • 它没有规模,

  • 随着时间的推移,当你增加这些变量的数量时,对于哪些函数使用哪些变量,它变得越来越混乱,

仅举几个.

要回答您的问题 - 尽可能在全局状态下使用参数.

  • 更何况; "紧耦合","静态初始化惨败","导致关机崩溃的终生问题","全局命名空间的污染"等等...... (7认同)