extern的总结
来源:互联网 发布:周口软件开发 编辑:程序博客网 时间:2024/04/29 08:57
在刚接触的项目中,同事对extern的使用错误导致我冤枉花了近4个小时去发现错误,痛心啊,
总结下extern的使用吧:
extern用在变量和函数在别的文件中需要调用时
1:变量
在一个源文件里定义了一个数组: char a[6];
在另外一个文件里用下列语句进行了声明: extern char *a;
请问,这样可以吗?
答案与分析: 不可以,程序运行时会告诉你非法访问。原因在于,指向类型T的指针并不等价于类型T的数组。extern char *a声明的是一个指针变量而不是字符数组,因此与实际的定义不同,从而造成运行时非法访问。应该将声明改为extern char a[ ]。
2: 函数
1: 在函数对应的头文件中extern外部要用到的函数,外部调用头文件就OK,但尽量避免这样,因为头文件包
含了太多东西
2: 如果函数func定义在a.c里面,在b.c里面incude "a.c" 就可以调用
3: 对1 所作分析怀疑,经过测试发现(环境redhat 9.0),函数都编译的话好像可以直接使用另一个文件的函数,除非它static了,是链接的时候调用的吗?
对观点1的总结 : extern的使用地方,觉得在头文件中extern和在需要用到的文件中extern相比,后者更人性,前者更简洁
对观点 2 和 3 的总结 : 如果链接的时间不一样,可能就不奏效了
- extern的总结
- extern的总结
- static和extern的总结
- extern 总结
- extern总结
- const 、static、extern的用法总结
- const 、static、extern的用法总结
- const 、static、extern的用法总结
- static和extern的用法总结
- 变量的声明、定义、extern、static总结
- extern使用方法总结!
- 转载:extern使用方法总结!
- extern使用方法总结!
- extern使用方法总结!
- Extern使用方法总结
- extern使用方法总结!
- extern使用方法总结
- extern常见问题总结
- fedora3D桌面
- 在PowerDesigner中设计物理模型2——约束
- 在PowerDesigner中设计物理模型3——视图、存储过程和函数
- 段错误bug的基本调试方法
- 在PowerDesigner中设计概念模型
- extern的总结
- 017 重新设计后,功能增强了
- 空白的贺年卡
- 疑惑:如何用hql语句查询前10条数据??求解!!!
- 新的开始
- ubuntun下实现了dnw2的usb文件传输
- C#连接Oracle 字符串
- JDBC的CRUD操作中使用模板模式
- SSH:使用事务和不使用事务的区别