2017-06-01 36 views
0

儘管如此,宏是有價值的。一個實際的例子來自 <stdio.h>,其中getcharputchar通常被定義爲宏,以避免每個字符 處理的函數調用的運行時開銷。 <ctype.h>中的函數通常也被實現爲 宏。C中的宏如何幫助減少程序開銷,正如本書所述,The C Programming Language作者:Brian W. Kernighan和Dennis M. Ritchie?

這是來自這本書。我不明白爲什麼MACROS有助於降低開銷。他們所做的只是增加編譯過程中的一步。

+0

是的,我知道。開銷呢?它如何降低程序的開銷? MACROS的調用方式與其他程序不同嗎?分別編譯? – smartnerd

+1

宏在源代碼中直接替換,所以在運行時沒有函數調用。編譯器可能會比K&R編寫時更多地自動內聯函數,這使得這一點不那麼重要。這是不從過時(如果非凡的)書籍學習的一個原因。 –

+2

爲了擴大David的說法,每個函數調用都需要一些時間。儘管如此,我仍然會推薦閱讀K&R。 C自1990年以來一直在發展,但並不多。在完成本書後,瞭解改變的內容並不難。 – yellowantphil

回答