C語言函式後跟巨集定義是什麼意思,C語言函式後跟乙個巨集定義是什麼意思?

2022-02-08 02:55:14 字數 5255 閱讀 8165

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;

之類的。

所以符號常量只是巨集定義的一部分。

c語言在函式定義前加個public是什麼意思?這是什麼

public 關鍵字是型別和型別成員的訪問修飾符。公共訪問是允許的最高訪問級別。對訪問公共成員沒有限制 在乙個 上看到的,看對你有沒有幫助!c函式前的public是什麼意思 public是公有的意思,也就是任何類都可以訪問到這個方法 c語言函式前加上 是什麼意思 有的函式返回乙個數值 0或1 在函式...

c語言中是什麼意思,C語言中是什麼意思

並且的意思,是非的意思,沒有你那種寫法,具體使用方式如下 int a 5 bool b false 執行判斷處理 if a 5 b printf a d n a 左右應該還有兩個運算元,比如a b,一般出現在if語句的條件中,因為取反的優先順序高於邏輯與,所以意思是將b取反再與a做邏輯與,其結果為真...

c語言註釋是什麼意思,C語言註釋是什麼意思

麼偶什麼意思,就是表示中間的內容不是程式,只是註釋內容,告訴編譯器編譯的時候忽略這部分內容 註釋。僅僅只是註釋,沒有別的其他的意思,就是讓計算機跳過這部分內容,這個是說計算機不會編譯 裡面的東西的 是給人看的 讓別人更容易理解 就是註釋嘛。裡面不管出現了什麼都是註釋內容,你可能疑惑於中間的 把他們看...