java編程 宏代換函數(shù)的用法?
宏代換函數(shù)的用法?宏替換的本質(zhì)是用預(yù)定義的字符串替換宏調(diào)用。1格式(&;);。2函數(shù):用指定內(nèi)存變量中的字符替換函數(shù)調(diào)用。注意:當(dāng)變量名后跟“space”或“enter”時(shí),“.”可以省略,否則
宏代換函數(shù)的用法?
宏替換的本質(zhì)是用預(yù)定義的字符串替換宏調(diào)用。1格式(&;);。2函數(shù):用指定內(nèi)存變量中的字符替換函數(shù)調(diào)用。注意:當(dāng)變量名后跟“space”或“enter”時(shí),“.”可以省略,否則不能省略。
為什么大部分編程語言棄用了宏?
現(xiàn)代編程語言一般都支持編譯時(shí)常量,常量在大多數(shù)情況下都可以代替宏,因此不再引入宏功能。
為什么C和C應(yīng)該支持宏?當(dāng)時(shí)的編譯技術(shù)還不夠成熟,所以c語言代碼文件需要分為頭文件和源文件兩類。在編譯期間,還有一個(gè)稱為預(yù)處理階段的附加階段,在該階段中,宏將被實(shí)際值替換。
現(xiàn)代編程語言不再需要區(qū)分頭文件和源文件,并且沒有預(yù)處理階段,因此為了使用宏而添加編譯階段是拋棄了基本要素,因此今天的編程語言根本不使用宏。
當(dāng)然,有些朋友可能會(huì)說宏遠(yuǎn)不止是常量定義。我也承認(rèn)宏可以擴(kuò)展成非常復(fù)雜的東西,但在這個(gè)時(shí)候,宏是一個(gè)非常危險(xiǎn)和復(fù)雜的特性。我不認(rèn)為編程語言在做這些事情上有什么意義。與其關(guān)注宏,不如給語言添加一些語法糖。