预处理概述

在前面我们已经对C语言的基础语法知识有所了解了,每次进行程序的编写之前,我们会使用#include命令去导入我们的库函数,而这种以#号开头的命令称为预处理命令。

C语言提供了多种预处理功能,如宏定义、文件包含、条件编译等。合理地使用预处理功能编写地程序便于阅读、修改、调试、移植,也有利于模块化程序设计。

这个预处理命令时怎样去运行的呢?首先我们要知道的是我们编译器中的文件中的内容。

C语言从入门到精通第14天(C语言预处理)-LMLPHP

这里显示了我们用的输出输出函数库,当我们导入这个库函数时,程序会自动的进行预处理,将我们这个stdio.h文件中的内容加载到我们的.c文件中。

宏定义

在C语言程序中允许用一个标识符来表示一个字符串,称为”宏“。被定义为“宏”地标识符称为宏名。在编译预处理时对程序中所有出现的“宏名”,都用宏定义中的字符串去进行文本替换,这称为“宏代换”或“宏展开”。

语法为:

这里的字符串可以是常量也可以是表达式。

例如:

#define PI 3.14

// 例举一个函数求面积

int main(){
    float r,area;
    printf("please input:");
    scanf("%f",&r);
    
    area = PI * r*r;
    printf("%f",area);

    return 0;
}

这里我们使用的PI,但是程序仍能够给出正确的结果,这就是经过了预处理。在CLion的Terminal下输出命令:gcc -E main.c -o main.i,然后再同一个文件夹下找到我们编译好的main.i文件。

C语言从入门到精通第14天(C语言预处理)-LMLPHP

用记事本打开翻到最下面,可以发现我们的PI变成了3.14,如下:

C语言从入门到精通第14天(C语言预处理)-LMLPHP

条件编译

常用的条件编译指令

04-26 20:13