当前位置: 首页 > 图文教程 > 开发语言 > VC++ > C 程序的外部变量与函数
| C 程序的外部变量与函数 摘要 本文讨论了C程序的外部变量和函数的一些性质,结合实际的编程,给出了使用外部变量和函数的方法。 关键字:C程序,外部变量,函数 C程序由一组对象组成,这些对象包括程序中所使用的变量和实现特定功能的函数。变量可以分为函数内部定义、使用的变量和函数外部定义的变量,通常情况下,把函数内部定义、使用的变量称为内部变量或局部变量,而将在函数外部定义的、供许多函数所使用的变量称为外部变量,一般情况下,也可以称为全局变量。 1、外部变量的定义和使用 1.1 外部变量的定义与声明 变量声明用于通报变量的性质(主要是变量的类型),而变量定义则除此之外还引起存储分配。如果在函数的外部包含如下说明: int VarDesc;char Array[MAXVAL];那么这两个说明定义了外部变量VarDesc与Array,并为之分配存储单元,同时也用作供源文件其余部分使用的说明。另一方面,如下两行: extern int VarDesc;extern char Array[];为源文件剩余部分声明了VarDesc是一个int 类型的外部变量,Array是一个char数组类型的外部变量(数组大小在其他地方确定),但这两个声明并没有建立变量或为它们分配存储单元,其中关键字extern表明该外部变量在其他地方被定义。 根据C语言标准,外部变量虽然只能在某个文件中定义一次,但其作用域则是从其声明处开始一直到其所在的被编译的文件的末尾。因此其他文件可以通过extern说明来访问它。 1.2 外部变量的使用方式 如果外部变量被不同的函数所引用,并且这些函数没有集中在一个源文件中,而是分布在不同的源文件中,那么函数在引用这些外部变量时,必须采取先声明再使用的方式,否则,在编译时会导致重复定义的编译错误。 #include "global.h" /* for example, define two vars */int VarDesc;char Array[MAXVAL];/* other external var define */在对应的global.h头文件的内容则为: #ifndef _GLOBAL_H /* please insure _GLOBAL_H unique */#define _GLOBAL_H /* avoid quotation iterativly */#ifdef __cplusplusextern "C" {#endif /*__cplusplus *//* for example, declare two vars */extern int VarDesc;extern char Array[];/* other external vars declaration */#ifdef __cplusplus}#endif /* __cplusplus */#endif /* _GLOBAL_H */ 此外,在实际的编程中,这两个文件头部还应当有公司copyright声明、文件功能说明、版本说明、创建、修改历史等。 2、函数的定义和使用 根据C语言标准,函数只能被定义一次,而且在函数中,不能再定义函数,因此函数本身是外部的。 2.1 函数的定义与声明 定义函数是给出函数体的函数描述。一个函数只有在声明之后才能被引用。函数声明中,需给出函数名、返回类型、参数列表等。 函数的作用域从其声明处开始一直 |