C語言#ifndef指令


#ifndef預處理程式指令檢查巨集是否為未由#define定義。如果是,則執行程式碼,否則#else程式碼執行(如果存在)。

語法:

#ifndef MACRO  
    //code  
#endif

#else語法:

#ifndef MACRO  
    //successful code  
#else  
    //else code  
#endif

#ifndef範例

下面來看看一個簡單使用#ifndef預處理指令的例子。建立一個原始檔:ifndef-example.c,其程式碼實現如下 -

#include <stdio.h>  

#define INPUT  
void main() {
    int a = 0;
#ifndef INPUT  
    a = 2;
#else  
    printf("Enter a:");
    scanf("%d", &a);
#endif         
    printf("Value of a: %d\n", a);
}

執行上面範例程式碼,得到以下結果 -

Enter a:200
Value of a: 200

但是,如果不定義INPUT,它將執行#ifndef的程式碼塊。建立一個原始檔:ifndef-example2.c,其程式碼實現如下 -

#include <stdio.h>  

void main() {
    int a = 0;
#ifndef INPUT  
    a = 2;
#else  
    printf("Enter a:");
    scanf("%d", &a);
#endif         
    printf("Value of a: %d\n", a);
}

執行上面範例程式碼,得到以下結果 -

Value of a: 2