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

时间:2016-04-07 16:43:14

标签: c++ main variable-declaration

在C ++中,建议在主程序内部或其他部分之前声明全局变量?我的意思是,

之间有什么区别
#include <iostream>

int variable;

int main()
{    //my program
     return 0;
}

#include <iostream>

int main()
{
     int variable;
     //my program
     return 0;
}

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

2 个答案:

答案 0 :(得分:8)

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

示例:

本地到主要,

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

void foo() {
    v = 5; // compiler error: v not declared in this scope
}

全局,

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

void foo() {
    v = 5;   // compiles, v declared globally
}

答案 1 :(得分:1)

第一种情况下的

variable全局变量。它可以从main()以外的函数访问,包括variable;保证在程序执行之前存在;并在首次使用前设置为0.

在第二个示例中,main()是函数局部变量。除非由程序员设置,否则它不会初始化为任何内容,只能在main()内访问,并且会在main()终止之前被删除。最后一点对于Sub dural() For i = 1 To 15 With Cells(i, 1) If .Value = "" Then .Delete shift:=xlToLeft End With Next i End Sub 并不是特别重要,但对于其他功能则更为重要。