欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于C语言预处理的讲解

程序员文章站 2022-04-02 23:47:13
从.c文件到可执行程序的四步: 预处理、编译、汇编、链接 编译的命令: 预处理 gcc -E hello.c -o hello.i 编译 gcc -S hello.i -o...

从.c文件到可执行程序的四步:

预处理、编译、汇编、链接

编译的命令:

预处理 gcc -E hello.c -o hello.i

编译 gcc -S hello.i -o hello.s

汇编 gcc -C hello.s -o hello.o

链接 gcc hello.o -o hello.exe

预编译命令(4种):

文件包含:#include

宏定义:#define

条件编译:#if...... #endif

一些特殊作用的预定义宏

首先,预处理的作用有:

1、将源文件中以”include”格式包含的文件复制到编译的源文件中。

2、用实际值替换用“#define”定义的字符串。

3、根据“#if”后面的条件决定需要编译的代码预处理的概念

关于宏的使用:

1、宏定义是宏名来表示一个字符串,在宏展开时又以该字符串取代宏名。这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如有错误,只能在编译已被宏展开后的源程序时发现。

2、宏定义必须写在函数之外,其作用域为宏定义命令起到源程序结束。

3、宏名在源程序只能够若用引号括起来,则预处理程序不对其作宏替换。

4、宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在宏展开时由预处理程序层层替换。

5、习惯上宏名可用大写字母表示,以方便与变量区别。但也允许用小写字母。

#include包含头文件时需要注意的事项:

包含系统头文件:#include<>

包含用户自定义的头文件#include“”

#include同样可以包含.c文件,但一般不这样使用