C语言编译和执行分析

学过编程都知道,在所有高级编程语言中,C是运行最高效的语言, 一个重要原因是C语言是静态型语言,会直接被编译成机器码,然后被计算机直接运行。和大部分人一样,做对C语言编译之后的运行方式的充满了好奇,主要包括一下几个方面:

可执行程序是什么,里面只是包括一大堆机器码吗?
C语言中定义变量, 常量, 函数等等,在内存中是如何分布的,它们之间是靠什么相互访问的?
计算机当中,同时运行的进程非常多,每个进程都占用内存空间,程序编译的时候,如何知道自己运行时将要被加载到哪里,又如何被CPU执行? …阅读更多>>