請問c語言中的macro是什麼意思,與function有什麼區別

時間 2022-02-21 06:40:11

1樓:德昂當

macro 是巨集

function是函式

macro 是替換

function 是呼叫

function是單獨的一段程式,程式中只是呼叫它,而macro 使用處,編譯時會用全部替換成定義的語句。

使用 function省程式code ,使用macro不省程式,只省原始檔 .c

2樓:

macro是「巨集」的意思,主要是將c中的巨集定義,function是「功能,方法」的意思,主要是指c中的函式,兩個都只是講解內容,不屬於關鍵字!

3樓:半夢的看書亼

function 是函式或子過程, 一段**集合 規範了輸入/輸出 引數

macro 是巨集, 是乙個替代符號 相當於代數中的變數如 (x+y)^z = r 代數中 令 a = x + y則 r = a^z 可以說是 a 是 (x + y) 的巨集在c中巨集可以替代一段**

巨集在編譯時由預處理過程 替換成實際的**,然後再編譯所以很多地方用巨集會導致同樣的**多處存在,會增大程式體積,但可以較快地執行

用函式可以減少程式體積,但呼叫有時間損耗。

4樓:

macro是預處理巨集 比如 #define pi 3.14這些以#開頭的

用途,1、控制編譯流程,不需要編譯的**可以不處理,減小目標程式的大小。

2、統一使用一些常量。不至於重複鍵入。

3、一些快速小過程。

巨集在編譯時就被翻譯成常量。

由於這種翻譯,巨集可以寫一些小過程,當成內嵌過程,呼叫時比function要快

在c++中這種巨集過程基本上被inline function,巨集常量被const取代。

所以在c++中基本上只用來編譯流程控制,c中用的範圍廣一些。

c語言與巨集指令有什麼關係?

5樓:匿名使用者

c語言裡面可以用巨集定義

都一樣了,就像你申明乙個變數一樣簡單.

6樓:平凡人生

#define m(巨集定義名) 2*3(表示式)

相當於用m替代後面的表示式

7樓:匿名使用者

c語言是高階語言。

巨集指令是組合語言程式中的一種偽指令。

最終它們都是編譯成cpu能夠識別的二進位制指令。

8樓:

巨集指令是在預編譯時解釋

而c語言是在編譯時解釋

9樓:自然之風祥

程式的整體編譯過程為:預處理、編譯、優化、彙編、連線。巨集指令主要用到的死#define,#ifdef,#endif等,預處理就是處理這些指令

求組合語言中macro的用法 5

10樓:匿名使用者

如果有一段程式需要多次使用,為使程式不重複書寫這段程式,可用巨集定義把所需要重複出現的程式塊定義成巨集指令,此後在巨集指令出現的地方,巨集匯程式設計序總是自動地把它們替換成相應的**段。

巨集指令格式

[ 巨集指令名 ] macro [形式引數,.........]**段endm

在巨集定義中,使用了「形式引數「,它們引用巨集指令時被給出的一些名字或數值(實在引數)所替換。使用形式引數給巨集指令帶來了很大的

靈活性。

(2)巨集呼叫格式

[ 巨集指令名 ] [實在引數, ...]比如:delay macro

mov r2,#200

djnz r2,$

endm

flash:

setb p1.0

delay

clr p1.0

delay

sjmp flash

與子程式不同的是,子程式呼叫要用lcall,子程式返回要用ret,而巨集只是一段程式,子程式中用到時,編譯程式自動將這段程式在該位置,所以巨集呼叫其實相對與子程式而言占用的記憶體空間要大。

c語言中函式原型宣告部分是什麼意思

11樓:

函式原型申明就是在main函式前面需要申明一下,否則main函式呼叫這個函式時會找不到,原型申明可以不定義具體的函式體,然後可以把函式體的具體部分放在main函式後面再來單獨定義,這樣程式整體上更整潔,要不然自定義函式都在main函式的前面就定義了,那**一多還得找主函式。

c語言中include是什麼,C語言中include是什麼

include 是c語言的關鍵字 c語言有自己的函式庫,你要是想要用函式庫裡的函式就必須把包含這些函式的檔案包含進來,這時就需要用include關鍵字了,舉個例子 include stdio.h中包含基本輸入輸出函式祝你好運!包含指令,比如要使用printf scanf gets等函式就需要包含st...

c語言中temp是什麼,C語言中temp是什麼

temp 是自己定義的。常常定義為起臨時作用的變數。比如有a,b兩個變數,現在交換他們的值,就再定義個temptemp a a bb temp 這樣就實現了交換兩個值。 一般只是用來定義區域性變數的,由於臨時使用,所以名字取的有點隨意. 天雲一號 在c語言中,temp沒有特別的含義,既不是關鍵字也不...

c語言中s a是什麼意思,c語言中,a b是什麼意思?

1.s a 等價於 s s a 等價於 s s a a a 1 意思是 s自增a值以後,a再自增1。2.要弄清楚表示式的具體含義,必須知道運算子運算的先後順序,然後分步進行解釋。以下是運算子的優先順序別表 是s s a 的意思,其中a 是a a 1的意思,但 在a後面表示後加加,是整個表示式運算結束...