预处理器介绍:就是三个方面,宏定义,文件包含和条件编译
0:预处理是一个小软件,可以在编译器编译程序之前对源程序进行编辑,例如出书之前,编辑线看看你这个书写的通不通顺
1:预处理器可以处理一些预编译指令,这些预处理指令包括:
2:预处理的工作原理
3:预处理指令有哪些
0:预处理是一个小软件,可以在编译器编译程序之前对源程序进行编辑,例如出书之前,编辑线看看你这个书写的通不通顺
1:预处理器可以处理一些预编译指令,这些预处理指令包括:
宏定义:#defince
文件包括 #include,系统的文件的包含是<>,例如<stdio.h>我们自己写的头文件使用”” 例如“hello.h”
条件编译 #if #ifdef #ifndef #elif #else #endif
2:预处理的工作原理
预处理器可以在编译器对c程序进行编译之前,进行重新编译(修改源代码)工作
这个过程包括:
2.1 将使用#define 指令进行的宏定义进行匹配替换
2.2 将使用#include 指令包含的头文件添加到当前文件中
2.3 将预定义指令删除
2.4 删除注视
2.5 可以使用gcc -E Hello.c 查看预编译器的输出结果,例如下面程序输出结果将包含stdio.h到当前文件,并且替换宏定义
#include <stdio.h>
#define SIZE 20
int main(){
int i[SIZE];
//Hello World is 11 words;
printf("Hello World\n");
return 0;
}
然后执行gcc -E Hello.c
0:include的一些东西,stdio.h文件里面的内容都会显示
1:SIZE 替换成了20
2:主食修改了
int main(){
int i[20];
printf("Hello World\n");
return 0;
}
3:预处理指令有哪些
3.1 宏定义,marcos #define 指令定义了一个宏,#undef 指令删除一个宏,可以理解为系统变量,但是有区别的
3.2 文件包括,#include 指令将包含当前文件到程序中
3.3 条件编译 #if,#ifdef,#ifndef,#elif,#else和#endif,将包含代码块到程序当中,或将代码块排除在程序外。
既然有if else 那么问什么还要条件变异,这个是条件编译,如果不成功,我都不给你翻译的