
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 · 2445 阅读 · 0 评论 -
C语言编译过程(预处理,编译,汇编,链接)
预处理 编译 汇编 链接 预处理 gcc -E test.c -o test.i 预处理用于对所有的#开头的语句进行预处理,生成 .i 文件。预处理之后得到的仍然是文本文件,但文件体积会大很多。 处理#include,将#include指向的文件插入到该行处 将所有的#define删除,并且展开所有的宏定义。说白了就是字符替换 处理所有的条件编译指令,#ifdef #ifndef #endif等,就是带#的那些 删除所有注释 添加行号和文件标示,这样的在调试和编译出错的时候才知道是是哪个文件的哪一行原创 2020-05-17 16:42:57 · 754 阅读 · 0 评论