关于C语言预处理的讲解
程序员文章站
2022-07-05 22:39:06
从.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文件,但一般不这样使用
下一篇: php递归函数怎么用才有效