VC2005編譯優化選項之玄機

2021-06-19 18:57:29 字數 650 閱讀 1157

在vc程式設計中,你是不是發現乙個程式在最優化後,其執行行為就不是你想要的,而在不優化的時候,卻表現出是你想要的,神奇吧?ok,帶你來看其中一種這種情況:

在vc2005中的乙個c++ 返回值為bool型別的函式,該bool型別函式的預設返回值應該true還是false ? 不一定是true也不一定是false , 而是隨著編譯優化選項而變化。具體進行了如下測試

#include

using namespace std;

//測試test函式4種優化情況的返回值結果如下:

//不優化             /od false 

//最小體積優化  /o1 true

//最大速度優化 /o2 true

//完全優化         /ox true

bool test(bool b)

}int _tmain(int argc, _tchar* argv)

總結:其實並不是編譯器的錯,而是**寫得不夠嚴格和規範o(∩_∩)o哈哈~

當然,其實只要注意編譯器的警告選項就行了:

f:\2013\algorithm\algorithm\algorithm.cpp(106) : warning c4715: 'test' : not all control paths return a value

用VC2005編譯非VC工程

1.新建一空工程,再將原始檔及標頭檔案新增進去。2.開啟mak檔案。根據命令列提示配置vc工程屬性。mak檔案就是make檔案。使用方法 在命令列中輸入 nmake filename.mak 3.vc 2005工程屬性設定 方法 右擊工程名 屬性 可設定編譯器 鏈結器 資源編譯器的各個選項,在 命令...

使用VC2005編譯出現這個錯誤

include unknwn.idl 108 error midl2025 syntax error expecting or near annotation include unknwn.idl 108 error midl2026 cannot recover from earlier synt...

使用VC 2005 編碼框架

使用vc寫程式時,經常要自己對映訊息,非常不方便,不像powerbuilder,所有物件和事件都是視覺化。今天寫了乙個c 的框架,方便手頭上的工作,用於編寫自己的小工具。我要實現的功能就是訊息可能靈活呼叫。這周先這樣,下週就再實現具體的功能類,如ftp,檔案,xml,json呼叫.int initi...