#include <stdio.h>
int main()
{
#define A 1
#define C 1
#define E 1
#if A //true
printf("HelloWorle-1\n");
#endif
#if B //false
printf("HelloWorle-2\n");
#endif
#if defined(C) //true
printf("HelloWorle-3\n");
#endif
#if defined(D) //false
printf("HelloWorle-4\n");
#endif
#if !defined(E) //true
printf("HelloWorle-5\n");
#endif
#if !defined(F) //false
printf("HelloWorle-6\n");
#endif
return 0;
}
結果:
#if #if defined(x) #if !defined(x) 結尾都要加上#endif,由上述的程式範例可以看到反白處都是編譯器不會被編譯到的程式碼.
當#if #if defined(x) #if !defined(x)的判斷式沒有被#define宣告,就為"0",反之當被#define宣告為為"1"時,編譯器就會被編譯到判斷式內的程式碼.
沒有留言:
張貼留言