我应该在main函数内部或外部声明变量吗?

Jef*_*ski 0 c++ program-entry-point variable-declaration

在C++中,建议在主程序内部或其他地方之前声明全局变量?我的意思是,有什么区别

#include <iostream>

int variable;

int main()
{    //my program
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

#include <iostream>

int main()
{
     int variable;
     //my program
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

在哪种情况下我应该使用哪一个?

sjr*_*son 8

在第一种情况下variable,可以从文件中的所有其他函数访问(即它具有全局范围),而在第二种情况下,它只能从内部访问main.通常,最好将所使用的全局变量的数量保持在绝对最小值,以避免污染变量空间(以及其他几个原因).

例:

本地到主要,

int main(void) {
    int v;
    foo();
    return 0;
}

void foo() {
    v = 5; // compiler error: v not declared in this scope
}
Run Code Online (Sandbox Code Playgroud)

全球,

int v;
int main(void) {
    foo();
    return 0;
}

void foo() {
    v = 5;   // compiles, v declared globally
}
Run Code Online (Sandbox Code Playgroud)

  • 建议是正确的,但原因列表(污染变量空间)可能很低. (2认同)