extern用法小结 分别从5个文件剖析
测试extern的用法,总共5个文件
1. extern_head.h
功能:声明一个外部全局函数 bool IsValidHandle(int handle), 文件内容如下
#includeextern bool IsValidHandle(int handle);
2. extern_head.cpp
功能:定义全局函数bool IsValidHandle(int handle), 文件内容如下
#include "extern_head.h"
bool IsValidHandle(int handle)
{
if(handle > 0)
{
return true;
}
return false;
}
3. handle_a.h
功能:定义一个函数HandleA, 里面需要使用到IsValidHandle函数, 文件内容如下
#include "extern_head.h"
void HandleA(int m)
{
if(IsValidHandle(m))
{
printf("HandleA %d is valid handle\n", m);
}
else
{
printf("HandleA %d is not valid handle\n", m);
}
}
4. handle_b.h
功能:定义一个函数HandleB, 里面需要使用到IsValidHandle函数
#include "extern_head.h"
void HandleB(int m)
{
if(IsValidHandle(m))
{
printf("HandleB %d is valid handle\n", m);
}
else
{
printf("HandleB %d is not valid handle\n", m);
}
}
5. main.cpp
主函数入口,在此处调用HandleA, HandleB, 然后看是否能正确编译、运行并得到结果
#include "handle_a.h"
#include "handle_b.h"
int main()
{
HandleA(5);
HandleB(-3);
return 0;
}
执行后,可以看到输出如下:
HandleA 5 is valid handle
HandleB -3 is not valid handle
用法总结:
在头文件比如 some.h中声明一个extern函数, 在some.cpp中实现该函数,然后在其他的文件中需要用到这个函数时,只需要包含some.h这个头文件即可,全局函数的引用,特别是extern使用过程中,很容易出现函数重复定义的错误,这样做就可以避免这种错误==
本文来源 我爱IT技术网 http://www.52ij.com/jishu/4159.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
