预处理命令
功能主要包括三种:1宏定义命令;2文件包含命令;3条件编译命令。命令以符号**“#”**开头。
宏定义
1.不带参数的宏定义:#define 标识符 字符串
#define P1 3.14159 用P1代替3.14159
#define 为宏定义命令 P1为宏名
#undef P1 命令终止P1的作用域
2.带参数的宏定义:#define 宏名(参数表) 字符串
#define S(a,b)a*b
area=S(3,2)
宏的展开是将括号内的实参字符串代替宏命令中的形参;在宏名与带参数的括号之间不加空格,否则括号后都将作为代替字符串的一部分;
宏不等于函数(求出实参后带入形参),带参数的宏(只是进行字符替换)不等于函数,
结尾不必加分号
“文件包含”处理
指一个源文件可以将另一个源文件的全部内容包含进来,即将另外的文件包含到本文件中。
一般形式为**#include “文件名”** 或**#include < 文件名>**
一个include命令只能指定一个文件,多个文件多个include命令;
文件1包含文件2,文件2使用文件3:在文件1中命令使用两个include命令#include“file3.h”在#include“file2.h”
条件编译
只希望对源程序中部分内容在满足一定条件时进行编译,就是对一部分内容制定编译条件,即“条件编译”而条件不满足时编译另一组语句。
(1)#ifdef 标识符
程序段1
#else
程序段2
#else
endif
当所指定的标识符已经被#define命令定义过,则在程序中只编译程序段1,否则编译程序段2.
(2)#ifndef 标识符
程序段1
#else
程序段2
#else
endif
与(1)作用相反。
(3)#if 标识符
程序段1
#else
程序段2
#else
endif
当指定的表达式为真(非零),编译程序段1,否则编译程序段2。
有利于程序的移植性。