C 語言中的條件編譯語法

高等 C 語言

簡介

字串

指標與陣列

函數

結構

物件導向

記憶體

檔案

錯誤處理

巨集處理

C 與組合語言

資料結構

動態字串

動態陣列

鏈結串列

雜湊表

開發環境

Make

Cygwin

MinGW

DevC++

wxDevC++

編譯器

gcc 編譯器

TinyCC 編譯器

LCC 編譯器

應用主題

CGI 程式

GNU 程式

視窗程式

影像處理

練習題

訊息

相關網站

參考文獻

最新修改

簡體版

English

條件編譯的語法

#if constant_expression
#elif constant_expression
...
#else
#endif

程式範例

#include <stdio.h>

int main() {
#ifdef Linux
  printf("OS=LINUX\n");
#elif defined(Windows)
  printf("OS=Microsoft Windows\n");
#elif defined(OS)
  printf("OS=%s", OS);
#else 
  printf("OS=Unknown\n");
#endif
}

執行結果

D:\cp>gcc macroIf.c -o macroIf

D:\cp>macroIf
OS=Unknown

D:\cp>gcc -DWindows macroIf.c -o macroIf

D:\cp>macroIf
OS=Microsoft Windows

D:\cp>gcc -DLinux macroIf.c -o macroIf

D:\cp>macroIf
OS=LINUX

D:\cp>gcc -DOS=\"Sun Solaris\" macroIf.c -o macroIf
gcc: Solaris": Invalid argument
macroIf.c: In function `main':
macroIf.c:9: error: missing terminating " character
macroIf.c:9: error: syntax error before ')' token

D:\cp>gcc -DOS=\"Solaris\" macroIf.c -o macroIf

D:\cp>macroIf
OS=Solaris
D:\cp>

參考文獻

  1. Wikipedia:C preprocessor — http://en.wikipedia.org/wiki/C_preprocessor

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License