1、 判断预处理命令是否被定义
#ifdef symbol
//statements
#endif
举例
#ifndef _toupper
#define _toupper ……..
#endif
2、 进行IF_ELSE预处理
#ifdef symbol
//statements
#else
//other statements
#endif
举例:
#ifdef _MSC_VER
printf(“Microsoft”);
#endif
#ifdef __BORLANDC__
printf(“Broland”);
#endif
3、 在程序中,作为变通,可以在程序中使用#if命令和defined运算符来判断程序是否对某些符号已经定义:
#ifdef MY_LIBRARY
#ifndef MY_ROUTINES
#include “my_code.h”
#endif
#endif
可以采用如下的格式进行转化
#if defined(symbol)
//statements
#endif
用户可以使用#ifdefined来创建包含C逻辑运算符(包括&&、||、!)以下的结果与第一种一样但是感觉更加的明确
#if defined(MY_LIBRARY) &&!defined(MY_ROUTINES)
#include “my_code.h”
#endif
4、 创建自定义宏:宏允许用户创建类似函数、可带参数的操作。参数是用户传递给宏的值:
#include <stdio.h>
#define SUM(x,y) ((x) + (y))
void main()
{
Printf(“Adding 3 + 5 = %d”, SUM(3,5));
}
预处理器对宏参数进行替换:
X=SUM(3,5)--------->预处理器-------------->X=((3)+(5))
5、 创建MIN和MAX宏
#define MIN(x,y) ( ((x) < (y)) ? (x) : (y) )
#define MAX(x,y) ( ((x) > (y)) ? (x) : (y))
6、 创建SQUARE和CUBE宏
#define SQUARE(x) ((x) * (x))
#define CUBE(x) ((x) * (x) * (x))
注意:作为规则,一定要将宏参数放在括号中,宏是没有类型的,宏允许用户使用任何类型的数值。