首页 / 知识
关于c ++:什么是符号表?
2023-04-15 17:40:00

What is a symbol table?有人可以描述C和C ++上下文中的符号表吗? 符号表在这里有两种常见且相关的含义。 首先,目标文件中有符号表。通常,C或C ++编译器将单个源文件编译为扩展名为.obj或.o的目标文件。它包含可执行代码和数据的集合,链接器可以将这些可执行代码和数据处理为工作的应用程序或共享库。目标文件中有一个称为符号表的数据结构,该结构将目标文件中的不同项目映射到链接程序可以理解的名称。如果从代码中调用函数,则编译器不会将例程的最终地址放入目标文件中。取而代之的是,它将占位符值放入代码中,并添加一条注释,告知链接程序从其正在处理的所有目标文件中的各种符号表中查找引用,并将最终位置粘贴在该位置。 其次,共享库或DLL中也有符号表。这是由链接程序产生的,用于命名库用户可见的所有功能和数据项。这允许系统进行运行时链接,将对这些名称的开放引用解析为库在内存中的加载位置。 如果您想了解更多信息,我建议约翰·莱文(John Levine)的绝妙著作"链接器和加载器"。链接文本 简而言之,它是为变量分配名称到内存中地址的映射,包括类型,范围和大小等元数据。由编译器使用。 通常,不只是C [++] *。从技术上讲,它并不总是包含直接内存地址。这取决于编译器所针对的语言,平台等。 在Linux中,您可以使用以下命令:
列出该目标文件的符号表。 符号表是程序/单元中"符号"的列表。符号通常是变量或函数的名称。符号表可用于确定变量或函数在存储器中的位置。 查看符号表维基百科条目。 符号表是由编译器创建和维护的重要数据结构,用于存储有关各种实体(例如变量名,函数名,对象,类,接口等)的出现的信息。 |
最新内容
相关内容
数据库导出linux命令?
数据库导出linux命令?,密码,数据,数据库,情况,地址,系统,工具,网上,名字,命令,linux系统导出oracle数据库数据导出数据库对象在PL/SQL Developlinux权限命令可执行?
linux权限命令可执行?,系统,工具,信息,权限,数字,网络,发行,底部,代码,文件,linux修改文件权限?1、打开linux系统,在linux的桌面的空白处右击。linux命令与数据流?
linux命令与数据流?,工作,地址,系统,信息,命令,目录,标准,网络,管理,常用命令,linux基本操作命令linux常用命令有pwd命令、cd命令、ls命令、calinux恢复数据库命令?
linux恢复数据库命令?,工具,系统,软件,数据,盘中,密码,命令,备份,数据库,文件,linux如何恢复删除的文件1、接下来小编就给大家带来linux恢复误linux储存命令数据?
linux储存命令数据?,系统,工作,地址,信息,标准,命令,工具,实时,数据,分析,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目linux储存命令数据?
linux储存命令数据?,系统,工作,地址,信息,标准,命令,工具,实时,数据,分析,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目linux命令大全数据库?
linux命令大全数据库?,服务,系统,平台,状态,软件,通用,环境,数据,神州,地址,在Linux上用命令怎么连接数据库(linux连接oracle数据库命令)登录linux上数据库的命令?
linux上数据库的命令?,服务,系统,信息,地址,命令,密码,工具,管理,数据,单位,在Linux上用命令怎么连接数据库(linux连接oracle数据库命令)1、登linux命令dm数据库?
linux命令dm数据库?,地址,软件,时间,设备,名字,服务,位置,名称,公司,命令,linux创建dm数据库超时linux/sys下无法新建 方法如下打开c盘,在用户linux存储数据命令?
linux存储数据命令?,系统,管理,数据,设备,情况,地址,工作,命令,服务,平台,Linux文件系统操作命令1、cat:可以显示文件的内容(经常和more搭配使linux数据库查找命令?
linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,在linux中如何用命令查找文件在哪使用查找命令 “find”命令允许linux数据库同步命令?
linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,DB2数据库在linux操作系统的指令有哪些?1、linux系统常用操作命令