簡體   English   中英

編譯時預處理器輸出是否減少?

[英]Is preprocessor output reduced when compiling?

我目前正在學習C編程語言,並且很好奇使用預處理器宏時得到的代碼輸出是什么。 因此,我使用-E開關運行了gcc,並查看了輸出,對此感到有些驚訝。 總產量大於預期。 閱讀以下內容后: http : //tigcc.ticalc.org/doc/cpp.html我意識到這種行為是有意的,但是仍然存在一個問題(使用google時我找不到答案):大多數代碼是進入下一個編譯階段時已優化的內容? 例如,生成的代碼包含__u_char typedefsmemcpy定義等,這些在我的程序中未使用。 當我獲得生成的可執行格式時,這些引用是否仍然存在或從編譯器/匯編器中刪除?

它們只是函數的“原型”,允許您在代碼中引用它們。 他們自己根本不占用任何空間。 實際上,只有您使用的功能代碼才會從庫本身復制到可執行文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM