位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C語(yǔ)言 > 問(wèn)題詳情

C語(yǔ)言 #ifdef格式

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-01

#ifdef    標(biāo)識(shí)符 

    程序段1 

[#else

    程序段2]

#endif

作用:如果#ifdef指令后面跟著的標(biāo)識(shí)符已經(jīng)用#define定義過(guò),則編譯程序段1,否則編譯程序段2。#else部分可以省略,省略后變成如下形式:

    #ifdef標(biāo)識(shí)符 

        程序段1 

    #endif

【例題】用條件編譯實(shí)現(xiàn)排序

對(duì)三個(gè)數(shù)是按從小到大排序還是按從大到小排序。

算法分析:

設(shè)置一個(gè)常置FLAG,如果定義,那么對(duì)三個(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

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部