c语言编译过程

  • Post author:
  • Post category:其他





绪论

我们在各自的电脑上写下代码,得明白我们代码究竟是如何产生的,不想了解1,0什么的,但这几个环节必须掌握吧。

我们的代码会经过这4个环节,从而形成最终文件,c语言作为编译语言,用来向计算机发出指令。让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。


预处理, 展开头文件/宏替换/去掉注释/条件编译

gcc test.c -E test.i

编译, 检查语法,生成汇编

gcc test.i -S test.s

汇编, 汇编代码转换机器码

gcc test.s -c test.o

链接 链接到一起生成可执行程序

gcc test.o -o test


在这里插入图片描述

在这里插入图片描述


还有就是要记住下列几种常见预处理宏(是双下划线)

**
__LINE__ 表示正在编译的文件的行号
__FILE__表示正在编译的文件的名字
__DATE__表示编译时刻的日期字符串,例如: "25 Dec 2007"
__TIME__ 表示编译时刻的时间字符串,例如: "12:30:55"
__STDC__ 判断该文件是不是定义成标准 C 程序
我的vs2013不是定义的标准c语言
**

宏函数很好用,是直接展开,在这我顺便说一下宏的好处和坏处。


宏优点:


1、代码复用性

2、提高性能


宏缺点:


1、 不可调试(预编译阶段进行了替换)

2、无类型安全检查

3、可读性差,容易出错。



版权声明:本文为run_lzz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。