巨集和函式的區別

2021-07-23 19:47:24 字數 576 閱讀 9782

巨集非常頻繁的運用於執行簡單的計算。

那麼,為什麼不用函式呢?

1.巨集在使用時比函式在程式的規模和速度更勝一籌。

2.函式的引數必須申明為乙個特定的型別,於是它只能在型別合適的表示式使用。而巨集為無型別替換。

而有些情況只能用巨集,就是按型別申請空間時。

如:

#define malloc(n,type)\

((*type)malloc ((n)*sizeof(type)));

//呼叫時

int *p = malloc (25,int);

但,巨集也有缺點:  乙份巨集定義**的拷貝將插入到程式中,除非巨集非常短,否則使用巨集可能會大幅度增加程式長度。

還有巨集的***,如以下程式在比較時,會出現問題:

巨集和函式的區別

巨集定義又稱巨集代替,巨集替換,其宣告方式為 define name parameter list stuff。其中,parameter list 引數列表 是乙個有逗號分隔的符號列表,它們可能出現在stuff中。必須注意的是,引數列表的左括號必須與name緊密相連,如果兩者之間有任何空格存在,則引...

巨集和函式的區別

語言學習過程中,我們總會使用函式和巨集,以提高 可讀性,而要想更好的使用它們,就得了解清楚巨集和函式的區別,下面我們就來細數一下巨集和函式到底有什麼不同 1.長度不同。當執行程式時,在預處理階段,巨集 被插入到程式中,使程式的長度大幅度增長,下面這個例子是在只有乙個巨集的情況下 include de...

巨集和函式的區別

巨集和函式的區別 c語言中,巨集的用處也是十分廣泛,巨集是一種規則或模式,或稱語法替換 這種替換在預編譯時進行,稱作巨集展開。而函式函式就是一系列c語句的集合,為了完成某個會重複使用的特定功能。需要該功能的時候,直接呼叫該函式即可巨集和函式功能上有相同點,但是也有許多差異,在不同的場合做合適的選擇,...