1樓:匿名使用者
我想問if()語句1;else()語句2;為什麼是一個語句而不是兩個,有兩個分號?
2樓:匿名使用者
語句。誰tm說語句用分號結束的。
3樓:匿名使用者
創了個程式,但知識有限,就不能修理,新增工能…哎
4樓:沒有水印的鈔票
不是,條件編譯是在預處理階段,if語句是在程式執行階段。
怎麼不是用分號結束的?if()後面是不是還有一條語句?例如:
if(x > 1)
z = 10;
else
z = 20;
這段也可以寫成:
if(x > 1) z = 10;
else z = 20;
如果你不想對判斷做任何操作的話,那就可以寫成:
if(x > 1);
else ;
5樓:匿名使用者
條件編譯指令是#開頭的吧...
c++ if()是不是條件編譯指令??
6樓:黎約全球
不是,條件編譯是在預處理階段,if語句是在程式執行階段。
如果不想對判斷做任何操作的話,那就可以寫成:
if(x > 1);
else ;
7樓:匿名使用者
不是,if()是執行條件判斷,條件編譯指令一般是#if,兩個區別很大。
if 語句在程式執行的時候執行的,用於表示哪些條件下執行哪些語句
#if條件編譯屬於預處理,所謂的預處理就是在編譯程式的時候執行,用於表示哪些語句要編譯程序序中,哪些是不需要編譯程序序中。
8樓:風若遠去何人留
if()屬於判斷語句,不是條件編譯指令。
與if類似的條件編譯指令為#if和#ifdef。
條件編譯指令屬於預編譯語句,即編譯器在執行編譯工作時,會第一步處理預編譯語句,之後再進行剩餘的編譯工作。
在c語言中,所有的預編譯語句都是以#開頭的,如#define, #undef,#if等等。
條件編譯指令包括以下幾項:
1 #if
當後續的引數為真時執行編譯。
2 #ifdef/#ifndef
#ifdef當後續的巨集定義被定義時執行編譯。
#ifndef當後續的巨集定義沒有被定義時執行編譯。
3 #elif
與c語言語句中的else if類似,與#if或#ifdef連用,當後續引數為真時執行編譯。
4 #endif
用於條件編譯結尾,表示條件編譯結束。
c++中的條件編譯是怎麼一回事?能舉例解釋一下嗎?
9樓:應用之美
一般情況下,源程式中所有的行都參加編譯。但是有時希望對其中一部分內容只在滿足一定條件才進行編譯,也就是對一部分內容指定編譯的條件,這就是「條件編譯」。有時,希望當滿足某條件時對一組語句進行編譯,而當條件不滿足時則編譯另一組語句。
條件編譯命令最常見的形式為:
#ifdef 識別符號
程式段1
#else
程式段2
#endif
它的作用是:當識別符號已經被定義過(一般是用#define命令定義),則對程式段1進行編譯,否則編譯程式段2。
其中#else部分也可以沒有,即:
#ifdef
程式段1
#denif
這裡的「程式段」可以是語句組,也可以是命令列。這種條件編譯可以提高c源程式的通用性。如果一個c源程式在不同計算機系統上執行,而不同的計算機又有一定的差異。
例如,我們有一個資料型別,在windows平臺中,應該使用long型別表示,而在其他平臺應該使用float表示,這樣往往需要對源程式作必要的修改,這就降低了程式的通用性。可以用以下的條件編譯:
#ifdef windows
#define mytype long
#else
#define mytype float
#endif
如果在windows上編譯程式,則可以在程式的開始加上
#define windows
這樣則編譯下面的命令列:
#define mytype long
如果在這組條件編譯命令之前曾出現以下命令列:
#define window
則預編譯後程式中的mytype都用float代替。這樣,源程式可以不必作任何修改就可以用於不同型別的計算機系統。當然以上介紹的只是一種簡單的情況,可以根據此思路設計出其它的條件編譯。
例如,在除錯程式時,常常希望輸出一些所需的資訊,而在除錯完成後不再輸出這些資訊。可以在源程式中插入以下的條件編譯段:
#ifdef debug
print ("device_open(%p)\n", file);
#endif
如果在它的前面有以下命令列:
#define debug
則在程式執行時輸出file指標的值,以便除錯分析。除錯完成後只需將這個define命令列刪除即可。有人可能覺得不用條件編譯也可達此目的,即在除錯時加一批printf語句,除錯後一一將printf語句刪除去。
的確,這是可以的。但是,當除錯時加的printf語句比較多時,修改的工作量是很大的。用條件編譯,則不必一一刪改printf語句,只需刪除前面的一條「#define debug」命令即可,這時所有的用debug作識別符號的條件編譯段都使其中的printf語句不起作用,即起統一控制的作用,如同一個「開關」一樣。
有時也採用下面的形式:
#ifndef 識別符號
程式段1
#else
程式段2
#endif
只是第一行與第一種形式不同:將「ifdef」改為「ifndef」。它的作用是:若識別符號未被定義則編譯程式段1,否則編譯程式段2。這種形式與第一種形式的作用相反。
以上兩種形式用法差不多,根據需要任選一種,視方便而定。
還有一種形式,就是#if後面的是一個表示式,而不是一個簡單的識別符號:
#if 表示式
程式段1
#else
程式段2
#endif
它的作用是:當指定的表示式值為真(非零)時就編譯程式段1,否則編譯程式段2。可以事先給定一定條件,使程式在不同的條件下執行不同的功能。
例如:輸入一行字母字元,根據需要設定條件編譯,使之能將字母全改為大寫輸出,或全改為小寫字母輸出。
#define letter 1
main() }
執行結果為:c language
現在先定義letter為1,這樣在預處理條件編譯命令時,由於letter為真(非零),則對第一個if語句進行編譯,執行時使小寫字母變大寫。如果將程式第一行改為:
#define letter 0
則在預處理時,對第二個if語句進行編譯處理,使大寫字母變成小寫字母(大寫字母與相應的小寫字母的ascii**差32)。此時運**況為:
c language
有人會問:不用條件編譯命令而直接用if語句也能達到要求,用條件編譯命令有什麼好處呢?的確,此問題完全可以不用條件編譯處理,但那樣做目標程式長(因為所有語句都編譯),而採用條件編譯,可以減少被編譯的語句,從而減少目標的長度。
當條件編譯段比較多時,目標程式長度可以大大減少。
補充:標頭檔案中的#ifndef
千萬不要忽略了頭件的中的#ifndef,這是一個很關鍵的東西。比如你有兩個c檔案,這兩個c檔案都include了同一個標頭檔案。而編譯時,這兩個c檔案要一同編譯成一個可執行檔案,於是問題來了,大量的宣告衝突。
還是把標頭檔案的內容都放在#ifndef和#endif中吧。不管你的標頭檔案會不會被多個檔案引用,你都要加上這個。一般格式是這樣的:
#ifndef 《標識》
#define 《標識》
......
......
#endif
《標識》在理論上來說可以是自由命名的,但每個標頭檔案的這個「標識」都應該是唯一的。標識的命名規則一般是標頭檔案名全大寫,前後加下劃線,並把檔名中的「.」也變成下劃線,如:
stdio.h
#ifndef _stdio_h_
#define _stdio_h_
......
#endif
c++中條件編譯指令的使用
10樓:星星心願
其實用的最多的是在頭編譯的條件編譯,很多頭編譯就有。比如我宣告一個test.h的標頭檔案
#ifndef test_h
#define test_h
//你要寫的**
#endif
這裡用條件編譯主要是告訴編譯器,如果其他的地方沒有包含這個標頭檔案就包含這個標頭檔案,你可以試試,用兩個標頭檔案包含包含另外一個標頭檔案,如果沒有條件編譯就會出錯,有就不會出錯。
c++條件編譯指令
11樓:匿名使用者
樓主的這種用法很不好,在c++**裡不可取,讓人一看就知道他的基礎很不紮實樓主要仔細看看這方面的知識, 加油哦。。。。。
巨集定義一般用在標頭檔案裡,結構為#define 語句#ifdef 語句語句#endif
12樓:匿名使用者
#if 是專門計算#define的值的。如:#include void main()那麼就會如你期望的輸出3而你沒有用#define定義a,b的巨集那麼#if a==b 為真,因為a也未定義,b也未定義。
未定義當然等於未定義羅。
13樓:匿名使用者
應該是 在與預編譯的時候 區域性變數還沒有賦值 ,即其使用的都是預設的值0.所以條件為true了
c++常見條件編譯用法
14樓:育知同創教育
條件編譯命令最常見的形式為:
#ifdef 識別符號
程式段1
#else
程式段2
#endif
它的作用是:當識別符號已經被定義過(一般是用#define命令定義),則對程式段1進行編譯,否則編譯程式段2。
其中#else部分也可以沒有,即:
#ifdef
程式段1
#endif
這裡的「程式段」可以是語句組,也可以是命令列。這種條件編譯可以提高c源程式的通用性。如果一個c源程式在不同計算機系統上系統上執行,而不同的計算機又有一定的差異。
例如,我們有一個資料型別,在windows平臺中,應該使用long型別表示,而在其他平臺應該使用float表示,這樣往往需要對源程式作必要的修改,這就降低了程式的通用性。
c++中的條件編譯
15樓:程式小兵
#ifdef __cplusplus //自定義標頭檔案,它的作用為你下面有聯絡的語句塊提供標頭檔案
extern "c"
#endif
求教c++中無法識別的前處理器命令是為啥?還有要完整編譯c++是否需要自己加上條件編譯命令和巨集定義命令
16樓:匿名使用者
這個**我剛才在vc++上跑了一下,沒什麼問題啊,把你的錯誤**發上來
17樓:浮俊楠
看條件而定。看你用到什麼。
c++中如何通過條件編譯選擇不同的標頭檔案呢?
c語言中判斷自然數是不是素數的條件是什麼
1,首先了解素數的定義,一個大於1的自然數,除了1和它本身外,不能被其他自然數整除。2,以下是c語言程式。include int main if flag 0 根據flag的值判斷n是否是素數printf d不是素數 n elseprintf d是素數 n return 0 c語言程式設計判斷輸入的...
js中的if()判斷成立與否的條件是不是隻有true跟fal
if 當括號裡面的值為0 空字元 false null undefined 的時候就相當於false 則不執行語句 除此之外的值就執行語句 js是若型別語言,會把條件自動轉換,比如 if a if flase if i 0 if istrue if i 0 if s s 你懂js?if中的條件有很多...
現在相親是不是都看條件的
如果你自認為憑自己能力找不到物件,那可以去相親。但這樣找物件方法,都是以利益為主的。不要過於相信,感情可以婚後慢慢培養,那是上一代人的婚姻方式,現在時代不一樣了,現實往往比感情重要。婚姻的基礎 於情感,如果互相之前沒有情感,那麼婚姻會極其不穩定,只要有第三者插足,感情會在一夜間破裂。去過民證局的朋友...