巨集和函式的區別,巨集和函式的區別是什麼?

2022-02-19 21:52:25 字數 1675 閱讀 7791

1樓:匿名使用者

巨集是簡單替換,用多少次就會替換多少次

函式是呼叫,不管用了多少次,還是隻有一份**

2樓:匿名使用者

1.巨集會在編譯器在對源**進行編譯的時候進行簡單替換,不會進行任何邏輯檢測,即簡單**複製而已。

2.巨集進行定義時不會考慮引數的型別。

3.引數巨集的使用會使具有同一作用的**塊在目標檔案中存在多個副本,即會增長目標檔案的大小。

4.引數巨集的執行速度會比函式快,因為不需要引數壓棧/出棧操作。

5.引數巨集在定義時要多加小心,多加括號。

6.函式只在目標檔案中存在一處,比較節省程式空間。

7.函式的呼叫會牽扯到引數的傳遞,壓棧/出棧操作,速度相對較慢。

8.函式的引數存在傳值和傳地址(指標)的問題,引數巨集不存在。

巨集和函式的區別是什麼?

c語言類函式巨集和一般函式的區別

3樓:夏茹xiaru無味

:在c及c++語言中允許用一個識別符號來表示一個字串,稱為巨集,該字串可以是常數、表示式、格式串等。在編譯預處理時,對程式中所有出現的「巨集名」,都用巨集定義中的字串去代換,這稱為「巨集代換」或「巨集」。

c語言,巨集定義,與函式的差別 我覺得巨集定義和函式沒什麼差別啊, 是否可以用巨集定義代替函式

4樓:

不同。雖然功能近似,但函式會產生獨立**,每次呼叫執行的是同一個位置的**,無論呼叫多少次。

巨集定義是簡單的文字替換,產生的**是替換後程式產生的**,簡單說就是程式裡每次使用巨集替換後的地方都要產生類似的**,而這些替換後產生的**存在於程式的不同位置。

巨集定義不檢查引數型別,僅僅是簡單的文字替換

5樓:來自海印寺芳香襲人 的啄木鳥

首先巨集定義和函式是有差別的

巨集定義是在編譯之前處理的,不做語法檢查。 這個很危險另外我要說

#define a(b,c)

表示bc之合,在結果上和函式確實一樣

6樓:匿名使用者

但是當函式複雜的情況下,你就沒法代替了哦!

7樓:匿名使用者

#define a(x,y) x>y?x*y:x+y和int a(x,y)

a(x+y,x*y)這個表示式對於以上兩種定義的得到的結果是不一樣的而且,巨集有巨集的有點,函式有函式的優點

函式的優點就是佔用儲存空間少,缺點是每次呼叫函式都要呼叫中斷程式,影響執行效率

巨集的優點就是直接巨集,每次呼叫都要,所以比較佔儲存空間,但是相應的就不用呼叫中斷程式了,執行效率自然就高了

c語言巨集定義和函式的區別

8樓:匿名使用者

不管是巨集定義還是函式,都不要在修改某個變數之後,在同一個表示式中的另一個地方讀取這個變數的值。否則結果就是未定義的

對於你的**,在下面的表示式中

printf("%d^2 = %d\n", (i-1), sq(i++))

//                     1        2標有 2 的地方修改了變數 i 的值,標有 1 的地方又嘗試讀取 i 的值。你可能以為 1 在 2 之前計算。然而——你以為你以為的就是你以為的?

巨集和弘有什麼區別,巨集和弘的意思區別

在現代漢語種確實是通用的,但是古代造字的時候肯定是有需要才造的,文言的用法應該與區別吧,建議去查一下文言字典吧 巨集和弘的意思區別 巨集和弘都有表示大的意思,具體區別如下 區別一 釋義不同1 巨集是巨集大的意思,內如 偉。圖。願容 寬 2 除了有大的意思,還有擴充 光大的意思,如 圖。願。旨。現多作...

微分和函式增量的區別,微分和函式增量的區別

微分和增量存在以下關係 微分在數學中的定義 由函式b f a 得到a b兩個數集,在a中當dx靠近自己時,函式在dx處的極限叫作函式在dx處的微分,微分的中心思想是無窮分割。微分是函式改變數的線性主要部分。微積分的基本概念之一。增量則是指在某一段時間內系統中保有數量的變化。這三者之間的關係可用以下兩...

傳遞函式頻響函式和傳遞率的區別是什麼

傳遞函來數是拉式域中的概念,頻響函式自 是傅式域中的東西,兩者有一定的區別和聯絡,前者在拉式域中是一個曲面 變數為實軸變數和虛軸變數 而後者在傅式域中則是一條曲線,這條曲線可以看作是拉式域中的實軸變數為零的平面與前面提到的那個曲面的截線 傳遞函bai數是系統的物理du引數,也就是它受硬體決定,zhi...