1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 引用声明与定义声明的区别及如何使用extern引用外部全局变量

引用声明与定义声明的区别及如何使用extern引用外部全局变量

时间:2024-06-11 18:43:44

相关推荐

引用声明与定义声明的区别及如何使用extern引用外部全局变量

两种声明:

1.定义声明:简称定义,编译器给变量分配存储空间;

2.引用声明:简称声明,编译器不分配存储空间,但可引用已定义的变量。

声明可以多次,但是定义只能一次,对变量来说,必须加extern才是引用声明,对函数来说,函数声明默认就是extern。

当在不include含有全局变量或函数定义的头文件时,而这个全局变量或函数在某个源文件存在定义,则使用它之前都必须提前对他做引用声明才能使用此外部全局变量或函数,如:

在definition.cpp里定义声明

int blem = 3;

int fun(int a, int b)

{

return a + b;

}

在externdefinition.cpp做引用声明:

extern int blem;

int fun(int a,int b);

这样就可以在externdefinition.cpp使用定义好的变量或函数了。

definition.cpp如下:

externdefinition.cpp如下:

运行结果如下:

需注意的是:

1.如果在同一工程下的其他源文件中,使用外部全局变量而不加extern,则变成了一种定义声明,同一工程下,不允许同一变量的多个定义。

2.如果在externdefinition.cpp中定义了局部变量,则将隐藏外部全局变量声明,此时可以通过作用域解析运算符(::)就可以使用变量的全局版本。

3.局部变量的声明不能有extern的修饰,局部变量在运行时才在堆栈部分分配内存。

4.extern对静态全局变量和静态全局函数不起任何作用。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。