導航:首頁 > 源碼編譯 > c工程中未調用的子函數會編譯嗎

c工程中未調用的子函數會編譯嗎

發布時間:2024-05-13 20:57:04

A. C++ include的頭文件裡面的函數從來沒用過會被編譯進exe嗎

頭文件里你在代碼中沒有調用過的函數不會被編譯到exe文件中。如果沒有用過的函虛鏈數也編譯進去,那可執行程序得多大。
雖然不會編譯進去,平常還是需要用哪些函數就族譽塌包含哪個頭文件,不需兆圓要的的不包含,編譯時費時間。
C是多文件編譯的,編譯時會把每個Cpp文件單獨編譯,然後在鏈接過程中,代碼中調用了哪個函數,編譯器就會鏈接哪個函數,沒有調用的不會鏈接。

B. 在Keil uVision4中,用C語言,不調用的子程序,會不會編譯

1. 「這兩者都是用相同軟體,有何區別?」
是不同的軟體。

2. 「為什麼8051不可以自動不編譯沒有調用的子程序?」
因為用戶可能在匯編中隱式調用某個字程序。
對於你所說「在編譯ARM(LPC1768)時,有子程序沒有被調用,不會有警告,不調用的程序有不會編譯為代碼」我持懷疑態度。

不管哪種方式編程都很有可能隱式調用函數的,如通過函數指針。所以不編譯非顯式調用的子程序是明顯違反編程人員意圖的行為。兩種可能:默認項目設置不當;或者對這類子程序需要添加特別的類型說明或編譯開關。
想知道兩種編譯套裝的區別,最好的資料就是其自帶的說明文檔。那幾十兆的說明文檔看下來包你受益無窮。

C. keilc中怎麼使一個庫函數不調用時不編譯

它不會被嵌入代碼而佔用空間的,當然動態鏈接庫除外。KEIL把源代碼編譯成最終執行代碼,要經歷兩個過程,一是編譯:即把源文件編譯成中間目標文件,簡單的說是把C文件編譯成.O或.obj文件;二是鏈接,這個是生成可執行文件的關鍵,它會根據MAIN函數頭和各個中斷函數中調用的函數去中間目標文件中選擇對應的代碼並最終打包到一起生成可執行文件。所以,聲明未被用到的函數是不會佔用程序存儲空間的,但是它會被編譯,只是在連接時不會被選用。希望對你有幫助!!!

D. 嵌入式中函數不會被調用會編譯到固件嗎

  1. 嵌入式系統

  2. 函數如果僅是定義了,而沒有被其它函數調用,這種情況下,優化系統不會將此函數編譯進最終可執行結果。所以更不會佔用內存。

  3. 2.PC系統

  4. 通常情況下函數如果僅是定義了,但未被調用,系統會進行編譯,能夠檢查並發現函數中的問題,但是否編譯進最終的可執行文件受編譯系統的控制,如果未被編譯到系統中則不會佔用內存。即便編譯到了系統中,由於PC系統在運行時,並不會將所有的程序都載入至內存,因此,還會受到操作系統本身的限制。

  5. 3.BS系統

  6. 伺服器端的程序通常情況下會佔用內存,因為系統不清楚是否會被調用,尤其是在WebService這樣的系統上。

  7. 客戶端的程序,無論是否被調用,在傳輸、載入等情況下,肯定會被代碼管理系統預編譯,因此,也是需要佔用內存的。

E. 單片機C語言編程,假如頭文件里的函數沒有被調用,那麼該函數會不會最後編譯出來而佔用內存

沒有用到自然就不會被編譯,就不會占空間

如果頭文件定義有1000個函數
你的程序只用了1個函數

那麼編譯後的程序,只有這一個函數的內容

閱讀全文

與c工程中未調用的子函數會編譯嗎相關的資料

熱點內容
androidapi版本號 瀏覽:784
小豬佩奇配音解壓吃東西 瀏覽:283
程序員怎麼申請公司年會 瀏覽:870
圈店app的預約頭條功能怎麼樣 瀏覽:34
雲伺服器設置ad域 瀏覽:316
我的世界無盡貪婪奇點壓縮器 瀏覽:394
源碼資源免費分享網 瀏覽:686
批量qq號有效驗證源碼 瀏覽:511
本科程序員五年工資 瀏覽:902
創維電視櫃怎麼安裝app 瀏覽:852
可愛的程序員陸漓劇照 瀏覽:851
怎樣把截屏壓縮成300kb 瀏覽:225
dart文件加密 瀏覽:40
java對接攝像頭源碼 瀏覽:887
安卓項目開發實例附源碼 瀏覽:728
程序員蘋果全家桶 瀏覽:197
遠程命令阻塞 瀏覽:731
有網頁源碼怎麼查數據 瀏覽:100
win10下make編譯速度過慢 瀏覽:866
微機原理編譯環境 瀏覽:19