关于重定义问题
来源:互联网 发布:全景云平台源码 编辑:程序博客网 时间:2024/04/29 20:45
有关编译的时候是否将重名的变量归为重定义也是要有据可依的。
首先我们先来了解一下在编译器在编译我们的代码的时候,变量有没有初始化是不同对待的。
经过初始化的变量是强符号,而没有经过初始化的变量是用弱符号表示的。
当代码中有两个或者是多个相同的变量的时候我们根据下面的规则还判断是不是重定义:
1,当两个或者是两个以上的强符号,编译器会认为是重定义,而且会有错误给出,编译失败
2,当只有一个强符号,其他都是弱符号的时候以强符号为主,此时编译器不会认为是重定义,链接的时候会找到强符号
3, 弱都是弱符号,则不会报错,编译器通过在连接的时候会任意选择一个。
经过初始化过的变量编译后的符号放在data段中,而没有初始化的变量符号则是放在bss段中。
但是如果有很多的弱符号会不会引起什么错误呢?
假设如果所有的目标文件选择的弱符号都是一个的话我觉得那也不会有什么错误产生吧。
- 关于重定义问题
- 关于C++重定义问题
- 关于C++重定义多次初始化问题
- 关于头文件重复包含以及函数重定义问题
- 关于头文件重复包含以及函数重定义问题
- 关于php 类 方法重定义的问题
- 关于头文件重复包含以及函数重定义问题
- VC重定义问题
- 关于在线重定义表
- 关于重载、重写、重定义
- 关于类型重定义错误
- 关于"class“类型重定义
- 关于MSXML和xerces中关于DOMDocument重定义的问题
- ADO ENUM 重定义问题
- 解决typedef重定义问题
- #define 重定义函数问题
- class类型重定义问题
- LNK2005符号重定义问题
- 为launcher添加一个仿Mac的dock(附源码)
- MTK 如何获取手机的本机号码
- hello word!
- visual studio 2010 中的并行调试任务窗口无效
- Hibernate乐观锁实现——Version
- 关于重定义问题
- png格式的图片在IE6透明显示
- 当今世界最受人们重视的十大经典算法
- MTK 如何在设置默认群组(caller group)
- [ProblemSolving]无法删除文件,没有权限
- Android 应用初始化及窗体事件的分发
- K尾相等数
- linux下自启动weblogic
- Configure SSL for Secure Websites Using Apache 2 on Ubuntu 10.10