第一種:
#define test_no1
#ifdef test_no1
printf("test_no1被定義的話,就打出這行字");
#else
printf("else 可以省略");
#endif
上面這種的用法是,如果識別符號被定義了,那麼就編譯第一段,否則就編譯第二段。
第二種:
#ifndef test_no2
printf("如果沒有定義上面的識別符號,打出這行字");
#else
printf("else可以省略");
#endif
上面這種用法就是翻過來的,如果識別符號沒有被定義就編譯第一句,否者就編譯第二句。
第三種:
#if test_no3
printf("~~~~~~~~~");
#else
printf("~~~~~~~~~");
#endif
上面這種用法的意思就是如果test_no3為真,就編譯第一句,否者編譯第二段。
第四種:
#ifdef 和 #if defined 的區別
#if defined (test_no4) && defined (test_no5)
printf("~~~~~~~~~~~~~~~~")
#endif
#if defined (test_no6) || test_no7> 12
printf("~~~~~~~~~~~~~~~~")
#endif
第四種可以組成複雜的預編譯條件,從而實現功能的擴充套件
問這麼做有什麼好處嗎?
答:當然,在大型**開發的時候可以利用這一功能控制**是否被編譯來控制專案的功能以及**的大小。或者在除錯的時候可以遮蔽某處**,來排查問題,而不至於翻過去整段注釋掉(這樣做真的很low)。
簡言C語言使用技巧之陣列到底有多大
乙個陣列的所有元素都是同型別的。eg int test array1100 這個語句的意思就是定義乙個陣列 他的名字是est array 他有100個元素 每個元素都是int型的 注意 這個陣列有100個元素,不是101個,這裡不從零開始數,那麼什麼時候從零開始數呢?答 下標!下標是從0開始標號的 ...
C語言預處理之條件編譯
這是stdio.h的頭幾行 if msc ver 1000 pragma once endif ifndef inc stdio define inc stdio if defined win32 defined mac error error only mac or win32 targets s...
C語言巨集定義之條件編譯
4 條件編譯命令 有幾個命令可對程式源 的各部分有選擇地進行編譯,該過程稱為條件編譯。商業軟體公司廣泛應用條件編譯來提供和維護某一程式的許多顧客版本。if else,elif及 endif if的一般含義是如果 if後面的常量表示式為true,則編譯它與 endif之間的 否則跳過這些 命令 end...