称为全局变量

来源:互联网 发布:java导入excel文件 编辑:程序博客网 时间:2024/06/09 20:00

在上一课中,你学到了一块有块中声明的变量范围。块范围变量只能块中声明它们一个嵌套的子块)并被摧毁当块结束

一块外声明的变量称为全局变量。全局变量都有计划的范围这意味着他们可以在程序中到处访问他们只是被破坏时,程序结束

这里是声明一个全局变量的一个例子

1

2

3

4

5

6

7

8

9

10

国际g_nx /全局变量

国际main()

{

纽约纽约/局部变量

/ /全局变量可以在程序中随处可见

/ /所以我们可以改变他们的价值观在这里

g_nx = 5

} //纽约破坏了这里

因为全局变量有计划的范围,他们可以在多个文件中使用。在一节文件程序知道为了使用功能在另一个文件中声明你必须使用一个声明或者头文件

同样,为了使用一个全局变量,已在另一个文件中声明,你必须使用一个前向声明或者头文件,随着extern关键字。extern告诉编译器你没有宣布一个新的变量而是指一个变量的地方

这是使用向前声明式的外部的一个例子

global.cpp

1

2

g_nvalue /宣言

国际g_nvalue = 5

main.cpp

1

2

3

4

5

6

7

8

/ /外部告诉编译器变量被声明的地方

extern int g_nvalue

国际main()

{

g_nvalue = 7

返回0


然而,有局部变量同名的全局变量通常是制造麻烦,并应尽可能避免。使用匈牙利表示法,它是常见的全局变量“g_”前缀。这是区分全局变量局部变量的一种简单的方式,避免了由于隐藏变量命名冲突

新的程序员经常使用全局变量很多,因为他们是容易的工作,特别是当涉及到许多功能。然而,这是一个非常糟糕的主意。事实上一般应完全避免全局变量

为什么全局变量是邪恶的

应该避免全局变量,有几个原因,但最主要的原因是因为他们增加你的程序的复杂性非常。例如,说你检查一个程序,你想知道一个变量命名g_nvalue用于。因为g_nvalue是全球性的,和全局变量可以用在整个程序的任何地方,你必须检查每一个文件的每一行!在一个文件和数以百万计的代码行的计算机程序你可以想象这会花多少时间

第二,全局变量是危险的因为它们的值可以是任何功能,被称为改变,也为程序员知道这会发生,没有简单的方法。考虑下面的程序

0 0
原创粉丝点击