C語言中的宏定義用法分為兩種。
目前創(chuàng)新互聯(lián)建站已為千余家的企業(yè)提供了網站建設、域名、雅安服務器托管、網站托管、企業(yè)網站設計、云龍網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
1、不帶參數的宏定義比較簡單,就是用一個指定的標識符來代表一個字符串。它的一般形式為“#define 標識符 字符串”,例如#define E 2.718281828459。這種方法使用戶能以一個簡單的名字代替一個長的字符串。
2、帶參數的宏定義不是僅僅進行簡單的字符串替換,還要進行參數替換。其定義的一般形式為;“#define 標識符(宏名)(參數表) 字符串”,字符串中包含在括號中所指定的參數。例如#define S(a,b) a*b area=S(3. 2)。
擴展資料:
宏定義只占編譯時間,函數調用則占用運行時間(分配單元,保存現場,值傳遞,返回),每次執(zhí)行都要載入,所以執(zhí)行相對宏定義會較慢。
使用宏定義次數多時,宏定義展開后源程序很長,因為每展開一次都使程序增長,但是執(zhí)行起來比較快一點(這也不是絕對的,當有很多宏定義展開,目標文件很大,執(zhí)行的時候運行時系統(tǒng)換頁頻繁,效率就會低下)。而函數調用不使源程序變長。
宏定義是C提供的三種預處理功能的其中一種,這三種預處理包括:宏定義、文件包含、條件編譯。
宏定義又稱為宏代換、宏替換,簡稱“宏”。
擴展資料:
宏(Macro),是一種批量處理的稱謂。計算機科學里的宏是一種抽象(Abstraction),它根據一系列預定義的規(guī)則替換一定的文本模式。
解釋器或編譯器在遇到宏時會自動進行這一模式替換。對于編譯語言,宏展開在編譯時發(fā)生,進行宏展開的工具常被稱為宏展開器。
宏這一術語也常常被用于許多類似的環(huán)境中,它們是源自宏展開的概念,這包括鍵盤宏和宏語言。絕大多數情況下,“宏”這個詞的使用暗示著將小命令或動作轉化為一系列指令。
C語言是一門通用計算機編程語言,廣泛應用于底層開發(fā)。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。
二十世紀八十年代,為了避免各開發(fā)廠商用的C語言語法產生差異,由美國國家標準局為C語言制定了一套完整的美國國家標準語法,稱為ANSIC,作為C語言最初的標準。
目前2011年12月8日,國際標準化組織(ISO)和國際電工委員會(IEC)發(fā)布的C11標準是C語言的第三個官方標準,也是C語言的最新標準,該標準更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、TurboC等。
參考資料:
宏定義-百度百科
C語言-百度百科
樓主看看書,仔細看看編譯預處理都做了哪些事情。
程序設計語言的預處理的概念:在編譯之前進行的處理。 C語言的預處理主要有三個方面的內容: 1.宏定義; 2.文件包含; 3.條件編譯。 預處理命令以符號“#”開頭。
宏定義又稱為宏代換、宏替換,簡稱“宏”。預處理制作單純的宏展開,并不是檢查語法錯誤,所說義是錯誤的。
語法錯誤都是編譯階段才檢查的。預處理是不檢查的。