C语言 #ifdef格式
#ifdef 标识符
程序段1
[#else
程序段2]
#endif
作用:如果#ifdef指令后面跟着的标识符已经用#define定义过,则编译程序段1,否则编译程序段2。#else部分可以省略,省略后变成如下形式:
#ifdef标识符
程序段1
#endif
【例题】用条件编译实现排序
对三个数是按从小到大排序还是按从大到小排序。
算法分析:
设置一个常置FLAG,如果定义,那么对三个数按照从小到大输出,否则按照从 大到小输出。
程序如下:
#include <stdio.h>
#define FLAG 0
void main()
{
int a ,b,c;
scanf("%d%d%d",&a,&b,&c);
#ifdef FLAG
if(a>b)
{int t=a;a=b;b=t;}
if(a>c)
(int t=a;a=c;c=t;)
if(b>c)
(int t=b;b=c;c=t;}
#else
if(a<b)
{int t=a;a=b;b=t;)
if(a<c)
{int t=a;a=c;c=t;)
if(b<c)
{int t=b;b=c;c=t;)
#endif
printf("%d %d %d\n",a,b,c)
}
程序执行,输入:
3 2 5
输出结果为:
2 3 5
如果将#define FLAG 0去掉,那么输出结果为:
5 3 2
点击加载更多评论>>