宏定義的用處主要體現在便于程序的調試上。
比如我要寫一個計算圓相關信息(周長、面積等等)的程序,需要定義π(3.14):#definePI3.14
那么勢必PI這個標識可以在程序中代替所有的3.14,如果我發現計算的精度不夠,需要π的更多有效位時,則只需將宏定義修改為:#definePI3.1415926
那么程序中的所有PI都會變成3.1415926
可想而知,沒有宏定義,我需要將代碼中全部的3.14都手動改為3.1415926
即使是定義doublePI=3.14;,你會發現當代碼很長時,在亂軍叢中找到一行“doublePI=3.14;”是多么困難的事。
又比如數組,定義時是不能出現“inta[n];”這樣的定義的,編譯通不過,因為必須規定數組長度。
但如果是:
#defineN10
inta[N];
就可以,對宏定義編譯器是不作檢查的,應為宏定義只是簡單的符號替換。所以一旦我還沒有確定要定義多長的數組,但又想通過編譯時,就可以提現宏定義的用處了。
如此看來,宏定義提升了程序編寫的靈活性。
宏定義是C提供的三種預處理功能的其中一種,這三種預處理包括:宏定義、文件包含、條件編譯。
宏定義又稱為宏代換、宏替換,簡稱“宏”。
格式:
#define標識符字符串
其中的標識符就是所謂的符號常量,也稱為“宏名”。
預處理(預編譯)工作也叫做宏展開:將宏名替換為字符串。
掌握"宏"概念的關鍵是“換”。一切以換為前提、做任何事情之前先要換,準確理解之前就要“換
上一篇武漢東湖大學是幾本?
下一篇查字典字母表順序排序?