宏定义
在程序中用一个标识符表示一个字符串,称为宏,标识符为宏名,将程序中所有的宏名用相应的字符来替换,这个过程称为宏替换,宏分两种:无参数的宏和有参数的宏。
1.1无参数宏
无参数宏定义的一般形式为:
#define 标识符字符串
define _m 1+2+3+4+5
#ifndef _m
printf("%d",_m);
“#”代表本行是编译预处理命令。defined是宏定义的关键字,标识符是宏名。字符串是宏明所代替的内容,可以是常数、表达式等。
1.2有参数宏
一般形式为:
#define 标识符(形参表)字符串
#define _m(a) (1+a)
printf("%d",_m(1)*_m(2));
文件包含
文件包含是指把指定源文件的全部内容包括到当前源程序文件中。
文件包含命令的一般形式为:
#include "文件名" 或 #include <文件名>
#include"stdio.h"
#include"math,h"
条件编译
条件编译是指在特定的条件下,对满足条件和不满足条件的情况分别进行处理——满足条件是编译某些句子,不满足条件时编译另一些语句。
条件编译指令常用于程序的移植等方面,与系统编译环境相关。在编译前先对系统环境进行判断,在进行相应的语句编译。
#if指令的形式为:#if 常量表达式
代码块
#endif
#if后面的常量表达式为值,则编译它与#endif之间的代码,否则跳过这些代码。指令#endif标识一个#if块的结束。
#else被使用来标志#if的末尾和#else块的开始。这是必须的,因为任何#if仅有一个#endif与之关联。
#elif意指"else if",它形成一个if else if嵌套语句用于多种编译选择。#elif后面跟一个常量表达式,如果表达式是真,则编译其后的代码块,不对其他#elif表达式进行检测,否则顺序测试下一块。常见的形式如下:
形式1:
#ifdef 标识符
/*程序段 1*/
#else
/*程序段 2*/
#endif
它的作用是当标识符已经由#define定义过了,则编译程序段1,否则编译程序段2,也可以使用简单形式
#ifdef 标识符
/*程序段1*/
#endif