- 对于extern全局变量和函数,使用头文件来声明它们
- 在定义全局变量和函数的地方include头文件
- 在使用全局变量和函数的地方include头文件
注:声明和定义变量的区别在于,声明只是告知编译器一个变量存在,它的类型是什么,而没有为变量申请内存空间。定义变量代表它已经被实例化,这个变量有了内存空间。
example:
globalVar.h //全局变量声明处
extern int global_variable;
globalFun.h //全局函数声明处
extern int incrementGlobal(void);
varDef.c //全局变量定义处
#include "globalVar.h"
int global_variable = 0; // 变量定义要放在函数外,是全局范围的定义
varUsing.c //全局变量使用处
#include "globalVar.h"
printf("Global Variable: %d\n", global_variable);
funDef.c //全局函数定义处
#include "globalFun.h"
int incrementGlobal(void) {
return ++global_variable;
}
funUsing.c //全局函数的使用处
#include "globalFun.h"
printf("Increment Global: %d\n", incrementGlobal());
指导原则:
1.永远把extern变量和函数声明在头文件中,不要把它们放在源文件里,保持一处声明原则;
2.不要忘记在定义extern变量和函数处include它们的头文件;
3.不要忘记在使用extern变量和函数处include它们的头文件;
4.不要忘记头文件全局变量之前的extern关键字,否则多个源文件include该头文件后,会多次创建这个变量。
---------------------
作者:小飞将
来源:CSDN
原文:https://blog.csdn.net/u014786409/article/details/120436882
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件
本文详细介绍了如何正确地使用extern关键字来声明全局变量和函数,并解释了声明与定义的区别。通过具体示例展示了extern变量和函数在不同源文件中的声明、定义与使用方式。
2112

被折叠的 条评论
为什么被折叠?



