2015-07-11 16 views
-3

我有一個函數調用.h和.cpp文件,用於將數據推送到顯示器,以便在測試程序時可以看到發生了什麼。 我註釋了引用.h和.cpp文件的函數調用,因此它不能在程序的最終版本中運行。在可執行文件中仍然存在未使用的函數嗎?

因爲我把函數註釋掉了,所以當我編譯程序時,VS 2013編譯器會忽略註釋掉的代碼以及.h和.cpp文件,而不是把它放在編譯的文件/可執行文件中,還是應該在編譯之前徹底刪除函數調用和名稱空間引用以及項目中引用的.cpp和.h文件?

這只是關於項目的最終大小,我不想讓它裏面的東西不會被使用。 我只使用那個大的peice代碼進行測試。

+0

如果你評論了它,它不會在你的編譯文件中。 –

+0

呃......你的問題到底是什麼? – Casey

+0

你的問題還不太清楚。請重申一下。 – Phil

回答

0

此代碼:

// just a comment 

等同於以下代碼:

  

從視編譯器的點。

+0

因此,如果我將文件保留在項目中,那麼您的說法是它不會佔用或在最終的.exe中創建任何不必要的空間,我將上傳到嵌入式系統。 – Pkzipper

+0

嗯,說實話,你的問題還不太清楚。也許你想知道在生成的可執行文件中是否存在已定義的函數,即使它沒有被調用,是嗎? – dlask

+0

我真的很想知道,如果該函數被註釋掉,函數引用的.h和.cpp文件也將被編譯。 – Pkzipper

0

所以我決定自己弄清楚這一點,因爲我的問題一定是很難理解或回答。

我編譯了程序中的所有內容,這意味着什麼都沒有被註釋掉。然後,我將該函數註釋掉,但留在項目中的.cpp和.h文件中,並再次編譯。最後,我完全刪除/刪除了函數調用和引用.cpp.h文件,並第三次編譯它。 結果分別是3小時後;編譯的最後兩個.exe文件比第一個整個編譯的程序小1.5 Mb。含義/希望/想法只是註釋函數調用意味着,因爲沒有再提及.h.cpp文件,所以它們沒有被編譯。

+1

也許一個更簡單的問題「未使用的函數仍然存在於可執行文件中?」不會導致降價,並會產生更多有用的答案。換句話說:如果一個人不明白你的問題,也許他/她是愚蠢的。如果沒人理解你的問題...... – dlask

+0

當然,我可以編輯這個問題,如果有人會給我的機會,而不是隻發佈負面投票。我以爲我們在這裏幫助而不是大滿貫! – Pkzipper

相關問題