1樓:可可可可
防止乙個標頭檔案被乙個原始檔多次包含的編譯預處理。
完整形式是。
#ifndef _h_letter_h_a ①#define _h_letter_h_a ②標頭檔案中的內容。
#endif ③
假設乙個原始檔第一次包含這個標頭檔案 則 語句①成立然後執行語句②並把標頭檔案的內容(到③處結束)拷貝到這個原始檔。
當第二次包含此標頭檔案,由於在第一次包含這個標頭檔案是執行了語句②_h_letter_h_a已經被定義,這時語句①就不成立了就直接跳到語句③後面,這樣這個標頭檔案的內容就不會被包含兩次。
首先你看看檔名是不是打錯了,其次你看看當前工程下有沒有這個標頭檔案,
2樓:網友
#ifndef _h_letter_h_a#define _h_letter_h_a上面的是預編譯,防止多個檔案包含多次,這樣會引起乙個變數被宣告多次。
cannot open include file: '': no such file or directory
#ifndef的用法
3樓:offercoming留學
#ifndef是巨集定義裡面的一種,用來防止防止標頭檔案的重複包含和編譯。
比如你有兩個c檔案,這兩個c檔案都include了同乙個標頭檔案。而編譯時,這兩個c檔案要一同編譯成乙個可執行檔案,於是問題來了,大量的宣告衝突。
如果把標頭檔案的內容都放在#ifndef和#endif中,不管你的標頭檔案會不會被多個檔案引用,你都要加上這個,就可以避免衝突的問題。
#ifndef可以根據是否已經定義了乙個變數來進行分支選擇,一般用於除錯等等。實際上確切的說這應該是預處理功能中三種餘碰慶(巨集定義,檔案包含和條件編譯)中的一種——條件編譯。 c語言在對程式進行編譯時,會先根據預處理命吵租令進行「預處理」。
c語豎握言編譯系統包括預處理,編譯和鏈結等部分。
#ifdef #define 是什麼意思?
4樓:錯玉蓉化妝
你想問的是兩者的區別還是兩者連在一起用的?
#ifdef是與#endif連用的,主要有三種表示方式。
第一種形式:
#ifdef
識別符號。程式段1
#else程式段2
#endif
它的功能是,如果識別符號已被。
#define命令定義過則對程式段1進行編譯;否則對程式段2進行編譯。如果沒有程式段2(它為空),本格式中的#else可以沒有,即可以寫為:
#ifdef
識別符號。程式段。
#endif
第二種形式:
#ifndef
識別符號。程式段1
#else程式段2
#endif
與第一種形式的區別是將「ifdef」改為「ifndef」。它的功能是,如果識別符號未被#define命令定義羨返談過則對程式段世含1進行編譯,否則對程式段2進行編譯。這與第一種形式的功能正相反。
第三種形式:
#if常量表示式。
程式段1#else
程式段2#endif
它的功能是,如常量表示式的值為真(非0),則對程式段1進行編譯,否則對程式段2進行編譯。因此可以使程式在不同條件下,兄碰完成不同的功能。
至於#define可用於進行巨集定義。
為什麼說#define
5樓:網友
#define是巨集定義的意思。
2. 巨集定義是用巨集名來表示銀薯者乙個字串,在巨集時又以該字串取代巨集名,這只是一種簡單的代換,手和字串中可以含任何字元,可以是常數,也可以是表示式,預處理程式對它不作任何檢查。如有錯誤,只能在編譯已被巨集後的源程式時發現。
3.巨集定義不是說明或語句鋒薯,在行末不必加分號,如加上分號則連分號也一起置換。
4.巨集定義其作用域為巨集定義命令起到源程式結束。如要終止其作用域可使用#undef命令。
盛大傳奇的高手來幫個忙哦
我上面著位。那井裡是刷 女法師新衣服的地方。暈哦。鬱悶。在幻境打裝備是最快的。可是盛大現在把那裡關掉了。可以衝值買元寶。然後去 闖天關。會有以外的收穫哦。呵呵。不過可能要花不少錢哦。豬洞只暴 沃瑪 裝備。想要 祖瑪 裝備 就去 祖瑪打吧。要不就去 魔龍 混。反正有狗。怕什麼啊。說不頂還能暴個魔龍裝備...
請教英語口語高手,英語高手幫個忙
你可以看英語電影學。我剛剛去加拿大時就是看電視學的。因為在電影用的是最常用的對話 想一想,電影才一兩個小時。又要交代清楚,又要有趣,所以是精華呢 然後你也可以跟著他們的語調,掌握他們的節奏。我覺得這個方法很好用,就是以後我都喜歡看字幕了 一般看三遍會比較好。第一遍 跟著字幕看,瞭解劇情。第二遍 把字...
幫個忙吧!各位高手,跪求2019 2019啟東的中
2010年啟東市中招錄取分數線 學校名稱 錄取線 語數外 語數 語 8101 啟東中學統招 691.5 413.5 268.5 126.5 8102 啟東中學擇校一 689 409 265 119 8103 啟東中學擇校二 675 407 267.5 125.5 8104 啟東中學中新班 655 4...