c语言
weixin_42811383
这个作者很懒,什么都没留下…
展开
-
.bss, .data, text存放变量分析与总结
变量/常量对应内存段分析分析全局变量,static变量,常量有无初始化赋值时分别存放在bss, data, text的哪一个段。总体思路是写一个最简化的 .c 文件,对该文件进行编译,使用size命令查看 .bss, .data, text 三个内存段的大小。接着向 .c 文件增加一些变量,比较三个内存段发生了哪些变化。例如://此为一个最简单c语言程序int main(void){ return 0;}//编译,再查看三个内存段的结果sophist@ubuntu:~/D原创 2020-05-29 10:39:54 · 2020 阅读 · 0 评论 -
C语言编译过程(预处理,编译,汇编,链接)
预处理 编译 汇编 链接预处理gcc -E test.c -o test.i预处理用于对所有的#开头的语句进行预处理,生成 .i 文件。预处理之后得到的仍然是文本文件,但文件体积会大很多。处理#include,将#include指向的文件插入到该行处将所有的#define删除,并且展开所有的宏定义。说白了就是字符替换处理所有的条件编译指令,#ifdef #ifndef #endif等,就是带#的那些删除所有注释添加行号和文件标示,这样的在调试和编译出错的时候才知道是是哪个文件的哪一行原创 2020-05-17 16:42:57 · 662 阅读 · 0 评论