C語言 #ifdef格式
#ifdef 標(biāo)識符
程序段1
[#else
程序段2]
#endif
作用:如果#ifdef指令后面跟著的標(biāo)識符已經(jīng)用#define定義過,則編譯程序段1,否則編譯程序段2。#else部分可以省略,省略后變成如下形式:
#ifdef標(biāo)識符
程序段1
#endif
【例題】用條件編譯實(shí)現(xiàn)排序
對三個(gè)數(shù)是按從小到大排序還是按從大到小排序。
算法分析:
設(shè)置一個(gè)常置FLAG,如果定義,那么對三個(gè)數(shù)按照從小到大輸出,否則按照從 大到小輸出。
程序如下:
#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)
}
程序執(zhí)行,輸入:
3 2 5
輸出結(jié)果為:
2 3 5
如果將#define FLAG 0去掉,那么輸出結(jié)果為:
5 3 2
點(diǎn)擊加載更多評論>>