extern声明的使用心得
来源:互联网 发布:608所怎么样 知乎 编辑:程序博客网 时间:2024/05/21 10:44
使用extern声明时,需要注意点,否则,编译会出错,特别是在一个文件中定义,在另一
个文件中声明的情况下。
说下在一个文件中定义,在另一个文件中声明的情况,我是这种情况下出错过。此外,也
将说下结构体变量作为函数参数的情况。
一、extern的使用事项:
在ADE78xx.h文件中定义了数据结构类型:ADE7878_Reg,在ADE78xx_DATA.h
中用这个数据结构定义了一些变量。然后想在ADE78xx_DATA_extern.h文件中对这些变量进行声明,好让其它程序文件可以引用这些变量。但是在ADE78xx_DATA_extern.h文件中由于没有包含ADE78xx_DATA.h文件,所以编译出错,把这个文件包含进去就编译OK了。
也许我说的不够详细,引用网友一段话做解释:
1. extern 变量; 一般用于共享数据。
#结构放在1.h
struct Step
{...
}
#在文件XXX.h / XXX.cpp中使用Step
直接可以使用 Step结构.
如果你在1.cpp中定义了变量struct Step g_Step,可以在XXX.h/XXX.cpp使用 extern struct Step g_Step;意思是在XXX中共享该结构数据(需要在XXX中包括1.h)。
2. extern 函数; 说白了就是告诉编译器这个函数可能在别的源文件里定义.
3. extern "C" XX; 就是C兼容了。
此外,如果结构体变量定义在.h文件中,需要有一次定义,即需要在某个.c/.cpp文件中包
含这个有结构体变量定义的.h文件。
二、结构体变量作为函数参数:
整个结构体作函数参数,必须保证实参与形参的类型相同,实际上是将实参结构体成员值
对应传递给形参结构体成员。数组传递的是首地址。
虽然结构体能整体作函数参数,但要将全部成员值一个一个传递,开销比较大。在结构体
成员较多的情况下,用指针作函数参数比较好。
- extern声明的使用心得
- extern声明的使用心得
- extern声明的使用心得
- extern 使用心得
- extern "C" __stdcall对函数的使用声明
- extern "C" __stdcall对函数的使用声明
- 使用extern声明结构体遇到的问题及解决办法
- 关于C/C++中extern的使用心得
- extern“C”声明的作用
- extern“c”声明的作用
- 使用extern声明外部定义的变量时不能赋值,只需声明变量
- extern 声明全局变量,多文件使用
- extern 声明
- extern声明
- extern 声明
- extern声明
- 变量的声明和定义的关系、extern关键字的使用
- 关于extern声明全局变量的用法
- libevent项目分析(一) -- 准备阶段
- Python:通过计算阶乘来学习lambda和reduce这两个函数的使用
- 两种系统间通信方式的比较
- oracle-如何让表的一个列自动增长
- 托管C++探索01-数据类型
- extern声明的使用心得
- DB2最佳实践(AIX6.1)——虚拟内存配置
- VLAN 及子网划分
- 近日处理shopex商品时用到的一些SQL语句
- UML类图关系全面剖析
- FPGA中系统运行频率计算方法
- COFF
- 看看我是如何进行早教的
- 类静态成员static(C++)