多文件共享全局变量和函数
2014-04-02 21:57
323 查看
在一个文件中定义的变量和函数如何能被其他文件使用,不会出现多重定义和未定义的编译错误,这要使用好头文件和关键字extern。
众所周知extern是声明外部变量的时候使用的,而函数声明默认就是extern的。
如果在一个文件中定义一个变量a,
int a;
那么只有本文件可以使用a变量,其他的文件看不到。其他文件可以使用extern声明a
extern int a;
这个语句的功能是,a变量已经被其他文件定义了,这里声明一下后,可以在本文件中使用。如果在每个文件中都声明一下每个外部变量,难免有点太繁了,我们可以在一个文件中定义变量,然后在这个文件对应的头文件中对这个变量加以extern声明,然后其它文件要使用变量的时候,只要把这个头文件包含进去就行了。
函数由于本身就是extern的,所以在头文件中声明的时候不需要加extern,只要像常规的声明一下即可。补充说明一下,头文件中只可以声明变量和函数,不要出现任何形式的定义,否则很容易出现多重定义。所有的定义都交给源程序(*.c或者*.cpp)去定义。
转自http://www.cnblogs.com/snddman/archive/2010/06/22/1762813.html
众所周知extern是声明外部变量的时候使用的,而函数声明默认就是extern的。
如果在一个文件中定义一个变量a,
int a;
那么只有本文件可以使用a变量,其他的文件看不到。其他文件可以使用extern声明a
extern int a;
这个语句的功能是,a变量已经被其他文件定义了,这里声明一下后,可以在本文件中使用。如果在每个文件中都声明一下每个外部变量,难免有点太繁了,我们可以在一个文件中定义变量,然后在这个文件对应的头文件中对这个变量加以extern声明,然后其它文件要使用变量的时候,只要把这个头文件包含进去就行了。
函数由于本身就是extern的,所以在头文件中声明的时候不需要加extern,只要像常规的声明一下即可。补充说明一下,头文件中只可以声明变量和函数,不要出现任何形式的定义,否则很容易出现多重定义。所有的定义都交给源程序(*.c或者*.cpp)去定义。
转自http://www.cnblogs.com/snddman/archive/2010/06/22/1762813.html
相关文章推荐
- php部分(查看文件、建立站点、语法变量、变量的几个方法、“全局局部变量的调用”、static、函数参数的作用域);
- C++跨文件共享全局变量
- python基础(函数、局部变量、全局变量、文件操作)
- C++多个文件共享同一头文件时全局变量的声明
- C/C++多文件共享全局变量时,使用extern的规范
- 模拟emule中的变量,函数,对象等全局共享
- 静态函数里定义的变量,不为所有对象共享,类的静态变量和类外全局变量区别,静态函数和普通函数区别
- 关于全局变量,如何被多个.c文件共享问题
- c语言中头文件的建立与使用-函数、全局变量、全局数组
- [InstallShield]如何在不同的Script文件之间共享全局变量
- 利用VS2010生成DLL文件及DLL中函数和全局变量的使用
- linux内核模块之间共享函数或者全局变量
- VC6.0下调用Dll文件提供的函数接口和全局变量
- Matlab函数文件中全局变量的使用
- VC6.0下调用Dll文件提供的函数接口和全局变量(转)
- 关于全局变量,如何被多个.c文件共享问题
- extern用法,全局变量,全局函数与头文件(重复定义)
- python在不同文件之间共享全局变量方案的探讨
- 多个".h"文件中声明及定义 全局变量和函数
- 多个".h"文件中声明及定义 全局变量和函数