前言
从自己接触计算机程序设计开始,就是从C程序入手的。在多年的从业经验中,慢慢积攒了一些经验,也没有好好梳理一下。
一直觉得一个好的程序员必须了解c或者c++,因为这两者是和操作系统打交道比较多的语言,使用过程中可以更好的了解操作系统,对程序优化和整个计算机的体系结构的了解有很好的帮助。
符号表
c代码经过编译和链接后,会生成可执行文件。而可执行文件中一般是带了一份“程序地图”的,这份地图中很详细的标记了程序内部的函数,变量的地址和相关属性。这份“地图”就是符号表。
我们可以通过nm指令来读取符号表和显示出来。
我使用的是mac环境,和linux类似,在windows下也有这个指令,可能使用方式有所不同吧,没有尝试过。
nm指令
可以通过man nm指令来查看具体的使用方法,各位可以自己去试一下。
这篇文章通过写几个基本的例子来说明nm指令和符号表的基本内容。
看一下hello world
先看一下最基本的hello world程序:
int main()
{
printf(&#