预处理:指在编译之前进行的处理。 C语言的预处理主要有三个方面的内容: 1.文件包含;2.宏定义;3.条件编译。 预处理命令以符号“#”开头。

如典型的 #include <stdio.h> 相信都不陌生。它主要是引用输入输出函数,来使我们方便且能够调用输入输出的函数功能。如 printf(); scanf(); 等。。


#include(文件包含)


include 使程序能够将其它源文件嵌入到目前的源文件中,方便调用函数功能。它与 Java 中的 improt 引入有些许雷同和类似。

定义格式 :

//方法1:
#include <头文件>    //去编译器找头文件 
//方法2:
#include "头文件"    //在当前项目路径中找

实例:

//如果去掉 include 则无法调用 scanf() 和 printf() 函数

#include <stdio.h>
void main(){
    char name[0];
    scanf("%s",&name);
    printf("\n\n Hi My name include ,Very efficient for you。 \n\n");
}


#define(宏定义)


宏定义 #define ,可以预先定义变量标识符,宏定义可以带有参数表达式和无参数,以便灵活使用。

定义的格式:

#define [宏名]  [参数]

实例:

#include <stdio.h>

#define Num 9
#define Num2 Num*r

void main(){
    double s;
    int r;

    printf("\n 请输入一个数:");
    scanf("%d",&r);
    s = Num2;
    printf("\n\n s = %g \n\n",s);
}

define.jpg



条件编译


在C语言编程 中如果有些语句想在条件满足时才编译,就可以用到条件编译预处理。

在 ANSI 标准中 ,c语言中预处理指令有:

#if,#else,#elif,#endif,#ifder,#ifndef,#line,#error,#pragma

其中 #if,#else,#elif,#endif,#ifder 和 #ifndef 较为常用。

#if,#else,#elif,#endif 的作用:

#if 标识符     //条件通过即编译程序段1
    程序段1    
#elif          //如果前面的 #if 条件不为真,则编译程序段2
    程序段2  
#else          //if 和 elif 的替代方案,编译程序段3
    程序段3     
#endif         //条件判断结束

#ifder

#ifndef 标识符 //如果标识符未定义,编译程序段1.否则编译程序段2
    程序段1
#else            
    程序段2
#endif

#ifndef

#ifder 标识符  //如果标识符已定义,编译程序段1,否则编译程序段2
    程序段1
#else
    程序段2
#endif