链接之外部链接与内部链接
来源:互联网 发布:herry it 编辑:程序博客网 时间:2024/05/22 01:26
关于在头文件里面的const,static,inline,解释
使用readelf命令可以看到
static类型的变量或者函数在symbol table 中 LOCAL
const类型的变量在symbol table 中 LOCAL 若修饰 函数会有多重定义冲突
inline修饰的函数在symbol table 中 WEAK
static 与inline同时修饰函数 在symbol table 中 LOCAL
以上能够避免多重定义的都是属于内部链接(inline不清楚,作用到是类似)
没有修饰的全局函数则为GLOBAL 比如 int main()
没有修饰的全局变量则为GLOBAL 比如 int s;
当我们在头文件a.h 定义类 在 a.cpp中定义对象的时候 该对象在symbol table 中 LOCAL 其构造函数为WEAK(对比上面的inline) 在类体内部将函数实现其实就是给函数加上了inline属性
文件开始
class A{
//函数的实现在这里
};
文件结束
若是下面这样就会发生多重定义冲突
文件开始
class A{
//函数的声明在这里
};
//函数的实现在这里
文件结束
0 0
- 链接之外部链接与内部链接
- 内部链接与外部链接
- 内部链接与外部链接
- 内部链接与外部链接
- 外部链接与内部链接
- 内部链接与外部链接
- C++ 内部链接与外部链接
- C++ 内部链接与外部链接
- C++内部链接与外部链接
- C++内部链接与外部链接
- C++编译与链接-浅谈内部链接与外部链接
- 内部链接和外部链接
- c++ 内部链接 外部链接
- c++ 内部链接 外部链接
- 内部链接和外部链接
- 内部链接和外部链接
- static inline与内部、外部链接对象
- 什么是内部链接和外部链接
- 如何用git,管理你的项目,同步到托管平台
- <java API源码初体验>2---collection集合之LinkedList原理分析
- 设计模式——单例模式(Singleton)
- Modular exponentiation
- 分布式数据库应用开发正解
- 链接之外部链接与内部链接
- LightOj 1298
- 最明白的JAVA——回调机制
- Android开发之java代码工具类。判断当前网络是否连接并请求下载图片
- 用AdoDataSet实现数据表的导入导出
- 拒绝别人是一种煎熬
- 链式哈希表
- 关于本blog
- 招聘需求系列之四