C语言学习(第一天)

来源:互联网 发布:淘宝分销受骗例子 编辑:程序博客网 时间:2024/04/30 01:34

c语言编译过程

c源代码->预处理->编译->优化->汇编->链接->可执行文件

预处理(preprocessing) —— 生成.i文件

  • 对c源代码中的伪指令或预处理指令(#开头的指令)和特殊符号进行处理。
  • 会删除注释和空白字符。
    gcc test.c -o test.i -E

  预处理指令是以#号开头的代码行,#号必须是该行除了任何空白字符外的第一个字符,#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令。

伪指令:

  1. 宏定义 #define #把后面参数换成字符串 ##参数连接到一起
  2. 条件编译指令 #if #elif #else #endif #ifdef #ifndef
  3. 头文件包含指令 #include
  4. 特殊符号 __LINE__ ___FILE__ __DATE__ __STDC__ __TIME__ #error #line #pragma

编译阶段(compliling) —— 生成.s文件

gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。

    gcc test.c -o test.s -S

汇编阶段(assembling)– 生成.o文件

把编译阶段生成的.s文件转成二进制目标代码。

    gcc test.c -o test.o -c

将.o文件链接成可执行文件。

    gcc test.c -o test

参考链接

  1. http://www.cnblogs.com/rusty/archive/2011/03/27/1996806.html
  2. http://blog.csdn.net/chengocean/article/details/6250779
  3. http://blog.csdn.net/eastonwoo/article/details/8655243
0 0
原创粉丝点击