C++中extern的作用 |
您所在的位置:网站首页 › 当前目录的定义 › C++中extern的作用 |
先来介绍一下C++中的单定义规则:变量只能有一次定义。 为了满足单定义规则,C++提供两种变量声明: 一种是定义声明(defining declaration)简称定义,给变量分配内存空间; 另一种是引用声明(referencing declaration)简称声明,不给变量分配空间,因为它引用已有变量。 在全局变量中,引用声明使用extern关键字且不进行初始化,否则声明为定义,导致分配空间: int x; // definition x is 0 extern int y; //y defined in elsewhere extern char c = ‘a’; // definition, c is initializedextern关键字的作用: 告诉编译器存在着一个变量或者一个函数,如果在当前编译语句的前面没有找到相应的变量或者函数,会在当前文件的后面或者其他文件中有定义。 例子: 全局变量/函数 A.cpp int i = 10;B.cpp int i; void main() { }在A.cpp中定义一个全局变量i,在B中也定义了一个全局变量i,编译能正常通过,但是链接的时候会报错: 但是到了链接阶段,要将各个文件的内容“合为一体”,因此,如果某些文件中定义的全局变量名相同的话,在这个时候就会出现错误,也就是上面提示的重复定义的错误。 因此,各个文件中定义的全局变量名不可相同。 如果一个文件中定义的全局变量,可以在整个程序的任何地方被使用。那么在A.cpp定义的全局变量,B.cpp可以直接使用吗? A.cpp int i = 10;B.cpp int main() { cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |