杂谈
文章平均质量分 60
weixin_36229332
这个作者很懒,什么都没留下…
展开
-
目标文件里有什么——揭秘目标文件
程序源代码被编译后生成的机器指令被放在代码段(.text);全局变量和局部静态变量被放在数据段( .data );除此之外还有程序里边的只读变量(如const修饰的变量)和字符串常量被分配在只读数据段( .rodata ),注释信息段( .comment ),堆栈提示段(.nute.GNU-stack)。未初始化的全局变量和静态局部变量的默认值都是0,为他们在数据段分配空间是不必要的,所以原创 2017-11-11 14:47:23 · 296 阅读 · 0 评论 -
程序执行期间发生了哪些事——预处理,编译,汇编,链接
当我们运行一个程序时,究竟发生了什么,这篇博客,我将就我的了解做出分析。预处理:(1)将所有的"#define"删除,展开宏定义。(2)处理条件预编译指令,如:"#if" "ifdef" "endif" (3)将被包含的文件插入到"#include"预编译指令中(4)删除注释(5)添加行号,以便编译器产生调试用的行号和用于编译产生错误时的警告的行号(6)保留所有的#p原创 2017-11-07 09:44:35 · 570 阅读 · 0 评论