链接的接口--符号
在链接中,我们将函数和变量统称为符号,每个文件都有一个相应的符号表,这个符号表记录了目标文件中的所有符号。每个符号对应了一个符号值,对于函数和变量名,符号值就是他们对应的地址。
符号表--》结构体数组
符号修饰和函数签名
为了解决符号冲突的问题,即名称重复,在c语言中,所有的符号经过编译后,在前面加上“-”。
c++引入符号修饰,将符号按规则进行一些变化,不同编译器厂商的符号修饰方法不同。
extern "C" 关键字:c++ 编译器会将extern "C"关键字中的内容当作C语言代码处理,C++的符号修饰就不会起作用。
为了兼容C和C++,使用条件宏。
强符号弱符号
对于c和c++来说,编译器默认函数和初始化了的全局变量为强符号,未初始化的全局变量为弱符号。
针对强弱符号的概念,链接器按一下规则来处理和选择被多次定义的符号。
标签:符号表,符号,--,接口,编译器,修饰,链接 From: https://www.cnblogs.com/wuyun--wy/p/16988241.html