1樓:暴血長空
預處理運算子# #為巨集擴充套件提供了一種連線實際變元的手段。如果替換文字中的引數用 # #相
連,那麼引數就被實際變元替換, # #與前後的空白符被刪除,並對替換後的結果重新掃瞄。例
如,下面定義的巨集p a s t e用於連線兩個變元:
#define paste( front, back ) front ## back
從而巨集呼叫paste(name, 1)的結果是建立單詞n a m e 1。
2樓:匿名使用者
巨集定義要看你怎麼用了。 例如#define newline printf("\n") 你在用的時候就要把newline當作是一條語句或函式後面要加分號才可以。 若#define newline printf("\n"); 那你在使用這個巨集的時候只要寫newline就可以了。
ps.如果你巨集定義中有分號,使用的時候加不加分號都行,因為多的那個分號可以認為是空語句。但是巨集定義沒有加分號,使用巨集的時候就要記著加分號。
所以你測試時只把巨集定義的分號去掉了,肯定會報某個語句之前parse錯誤
3樓:匿名使用者
用於指定編譯器優化儲存的巨集
c語言的巨集定義是什麼意思啊?
4樓:素水雲兒
不能更改的定義
#define m 100//巨集定義m=100m=10;//錯誤,巨集定義的資料不能被更改#define maxs(a,b)a>b?a:b;//maxs函式返回兩數中大的數
int maxs(int a,int b)//錯誤,maxs函式已被巨集定義
5樓:匿名使用者
樓上已經有了**,那簡單點說,個人認為巨集定義就是用乙個自定義的識別符號來表示一些東西,注意:#define 後面的是完全替代的,就像是必須完全一樣。
6樓:百度使用者
#define 識別符號 字串
巨集是一種定量
上面的都說了
不過沒說預處理o
預處理是要放在主函式main前面的
7樓:魂系中華
巨集定義是只不生成執行**的
在編譯的時候處理下
簡單的做替換,作用和函式或者常數有點像。。。
8樓:woshi誰
巨集定義是預處理的一種,
不帶引數的巨集定義
用乙個指定的識別符號(即名字)來代表乙個字串,它
9樓:史初然乜魄
簡單地說就是,如果你定義了乙個#define
aabc的話,那麼程式在編譯的時候,你程式裡所有單個的a都將被替換為abc。說到底,「巨集」就是「置換」。
c語言巨集定義裡帶引數是什麼意思?
10樓:匿名使用者
c的巨集可以用來替換常數,替換表示式,仔細把這個程式看完你就明白了,#include
int main()
程式輸入4 輸出25
11樓:匿名使用者
比如#define max(a,b) ((a)>(b)?(a):(b))
12樓:月夜闌干
格式:#define巨集名(參數列) 字串
例如:#define s(a,b) a*b
area=s(3,2);第一步被換為area=a*b; ,第二步被換為area=3*2;
類似於函式呼叫:
(1)實參如果是表示式容易出問題
#define s(r) r*r
area=s(a+b);第一步換為area=r*r;,第二步被換為area=a+b*a+b;
正確的巨集定義是#define s(r) ((r)*(r))
(2)巨集名和引數的括號間不能有空格
(3)巨集替換只作替換,不做計算,不做表示式求解
(4)函式呼叫在編譯後程式執行時進行,並且分配記憶體。巨集替換在編譯前進行,不分配記憶體
(5)巨集的啞實結合不存在型別,也沒有型別轉換。
(6)函式只有乙個返回值,利用巨集則可以設法得到多個值
(7)巨集使源程式變長,函式呼叫不會
(8)巨集不佔執行時間,只佔編譯時間,函式呼叫佔執行時間(分配記憶體、保留現場、值傳遞、返回值)
在c語言中"巨集"是什麼意思?
13樓:楊塵一
簡單來說:巨集定義又稱為巨集代換、巨集替換,簡稱「巨集」。是c提供的三種預處理功能的其中一種。
說明:1、巨集名一般用大寫
2、使用巨集可提高程式的通用性和易讀性,減少不一致性,減少輸入錯誤和便於修改。例如:陣列大小常用巨集定義
3、預處理是在編譯之前的處理,而編譯工作的任務之一就是語法檢查,預處理不做語法檢查。
4、巨集定義末尾不加分號;
5、巨集定義寫在函式的花括號外邊,作用域為其後的程式,通常在檔案的最開頭。
6、可以用#undef命令終止巨集定義的作用域
7、巨集定義可以巢狀
8、字串" "中永遠不包含巨集
9、巨集定義不分配記憶體,變數定義分配記憶體。
14樓:萌萌
定義的意思,在c語言中的巨集定義就是定義外部變數,內部函式使用exiterm來呼叫
如:exiterm char c1,c2;
c語言中的巨集定義的字是:definec語言中的define巨集定義有帶引數的和不帶引數兩中形式,不帶參格式是:#define 巨集名,字串帶參格式是:
#define 巨集名(引數1,引數2,...) 字串在c語言裡巨集定義只用來做的巨集名替換,而不做語法檢查的,因而它不是c語句,所以在巨集定義的時候不需要在後面加";"巨集也在c裡也叫預處理命令,因為巨集是在程式編譯前先進行字元替換的,所以叫預處理.在c裡還有其它的預處理命令如:
#define
#undef
#ifdef等。
c語言#define後面只有乙個引數是什麼意思
15樓:雪v歌
#define是巨集定義的意思
2. 巨集定義是用巨集名來表示乙個字串,在巨集時又以該字串取代巨集名,這只是一種簡單的代換,字串中可以含任何字元,可以是常數,也可以是表示式,預處理程式對它不作任何檢查。如有錯誤,只能在編譯已被巨集後的源程式時發現。
3.巨集定義不是說明或語句,在行末不必加分號,如加上分號則連分號也一起置換。
4.巨集定義其作用域為巨集定義命令起到源程式結束。如要終止其作用域可使用#undef命令。
16樓:匿名使用者
這是空巨集定義,不會影響**,不過對後面的#indef和#ifndef有用
c語言中的巨集定義有什麼用?
17樓:風林火陰山雷
您好!很高興為您解答。
巨集定義的用處主要體現在便於程式的除錯上。
比如我要寫乙個計算圓相關資訊(周長、面積等等)的程式,需要定義π(3.14):
#define pi 3.14
那麼勢必pi這個標識可以在程式中代替所有的3.14,如果我發現計算的精度不夠,需要π的更多有效位時,則只需將巨集定義修改為:
#define pi 3.1415926
那麼程式中的所有pi都會變成3.1415926
可想而知,沒有巨集定義,我需要將**中全部的3.14都手動改為3.1415926
即使是定義double pi=3.14;,你會發現當**很長時,在亂軍叢中找到一行「double pi=3.14;」是多麼困難的事。
又比如陣列,定義時是不能出現「int a[n];」這樣的定義的,編譯通不過,因為必須規定陣列長度。
但如果是:
#define n 10
int a[n];
就可以,對巨集定義編譯器是不作檢查的,應為巨集定義只是簡單的符號替換。所以一旦我還沒有確定要定義多長的陣列,但又想通過編譯時,就可以提現巨集定義的用處了。
如此看來,巨集定義提公升了程式編寫的靈活性。
望採納~如您還有不解,歡迎追問~
18樓:綠波菜
在這個題中是看不出什麼好處 for (int i=0; i以用 10 代替,因為題目簡單 但是如果比較複雜的 如二位陣列啊a[m][n] 中可能乙個 for (int i=0; i m n 巨集定義,就不需再用具體數值代替 這樣 程式的可讀性就好很多,你要知道,程式設計師編好程式 也會有人幫他複查的,如果你都用數值代替 ,一旦**很複雜了你自己看的明白,別人就不知所云了,當然還有一些好處 如 當遇到較長數值時 用乙個字母代替 有簡化作用等。 19樓:匿名使用者 ①重用性高:比如你定義乙個函式a裡有個陣列a[10],其他地方用到了函式a但是陣列大小為100,若是用了巨集定義就不用乙個個改了,直接把函式複製過去#define n 10改為#define n 100即可 ②不易出錯:用到很多的某一資料時很管用如#define π 3.1415916 20樓:匿名使用者 首先解釋一下巨集定義的作用,巨集定義是在編譯的時候替換掉。具體到這個程式中就是所有出現n的地方都用10來替換,lz會覺得為什麼不直接寫10呢?對吧,當時我也有這樣的疑問。 這個程式比較小,所以體現不出來,試想當程式**上萬行的時候,如果因為開發的需要這個10需要換成8,那麼只需要在巨集定義處的10改成8就行了,如果當時沒有巨集定義,那不知要乙個乙個的改到什麼時候,估計lz是新手,不懂可以追問 21樓:閒來無事 編譯的時候替換成10 c語言中的常量和巨集定義是同乙個意思嗎? 22樓:嫵媚大帝 c語言中的常量是在定義時用const來指示的,是由編譯器處理的,而巨集定義是由預處理器處理的,編譯器根本看不到,嚴格來說巨集定義不應該是c語言的組成部分。 23樓: 常量應該是巨集定義的一種,巨集定義還可以定義其他東西。 24樓:匿名使用者 嗯。你說的是 #define pi 3.14159 這種形式吧? 這種叫符號常量,是用巨集定義沒錯。 不過巨集定義不止是可以定義符號常量,它還可以帶有引數如#define s(a,b) a*b; 之類的。 所以符號常量只是巨集定義的一部分。 public 關鍵字是型別和型別成員的訪問修飾符。公共訪問是允許的最高訪問級別。對訪問公共成員沒有限制 在乙個 上看到的,看對你有沒有幫助!c函式前的public是什麼意思 public是公有的意思,也就是任何類都可以訪問到這個方法 c語言函式前加上 是什麼意思 有的函式返回乙個數值 0或1 在函式... 並且的意思,是非的意思,沒有你那種寫法,具體使用方式如下 int a 5 bool b false 執行判斷處理 if a 5 b printf a d n a 左右應該還有兩個運算元,比如a b,一般出現在if語句的條件中,因為取反的優先順序高於邏輯與,所以意思是將b取反再與a做邏輯與,其結果為真... 麼偶什麼意思,就是表示中間的內容不是程式,只是註釋內容,告訴編譯器編譯的時候忽略這部分內容 註釋。僅僅只是註釋,沒有別的其他的意思,就是讓計算機跳過這部分內容,這個是說計算機不會編譯 裡面的東西的 是給人看的 讓別人更容易理解 就是註釋嘛。裡面不管出現了什麼都是註釋內容,你可能疑惑於中間的 把他們看...c語言在函式定義前加個public是什麼意思?這是什麼
c語言中是什麼意思,C語言中是什麼意思
c語言註釋是什麼意思,C語言註釋是什麼意思