预处理

1. 预处理就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。

    预处理命令可以划分为文件包含条件编译3个大类。

2.在C语言源程序中,允许用一个标识符来表示一个字符串,成为“”。被定义为宏的标识符称为宏名。

   在编译预处理时,对程序中所有出现的宏名,都用宏定义中的字符串去代换,这称为宏替换宏展开

3. 在C语言中,#include被称为文件包含命令,其意义是把尖括号< >或引号" "内指定的文件包含到本程序来,称为本程序的一部分。

    被包含的文件通常是由系统提供的,扩展名为.h, 因此也称为头文件。

4. 文件包含中< >和" "区别

   1)使用< >表示在包含文件目录中查找文件,包含文件目录有在环境变量中设置,而不是在源文件目录去查找。

   2)使用" " 表示先在当前的源文件目录中查找,若未找到,才到包含目录中去查找。

5. 一般将符号常量全部变量函数声明放在头文件(.h)中,函数的定义放在源文件(.c)中。

6. 条件编译:

#ifdef  标识符
    program1
#else
    program2
#endif

如果标识符已被定义过,对program1进行编译,否则对program2进行编译。

如果没有program2,#else可以没有:

#ifdef 标识符
    program1
#endif
#define PI
#ifdef PI
 int number = 10;
#else
 int number = 5;
#endif
int main()
{
 printf("%d\n",number);
 system("pause");
 return 0;
}

可以看出#else下面是灰色的表示条件不满足。

与上面的功能相反的条件编译:

#ifndef 标识符
	//program1;
#else
	//program2
#endif

下面举例:

#define PI
#ifndef PI
	double area = 0;
#else
	double area = 3.14*5*5;
#endif

int main()
{
	printf("%f\n",area);
	system("pause");
	return 0;
}

还有一种形式是#if 表达式

#if  表达式

    program1

#else

    program2

#endif

表达式一般是布尔表达式,如果为真,编译program1,否则,编译program2.

你可能感兴趣的:(C语言)