在我計劃的一部分,我的代碼:爲什麼我的程序進入if語句及其相應的else語句?
if(cameraName == L"AVT Prosilica GT2750") {
mCamera = new camera_avtcam_ex_t();
} else if(cameraName == L"QImaging Retiga 2000R\\4000R") {
mCamera = new camera_qcam_ex_t();
}
當我建立了我的程序,以便cameraName默認爲L「AVT Prosilica公司GT2750」(我的調試器會顯示這是它的價值) ,它進入if語句並運行mCamera = new camera_avtcam_ex_t();
,但是當我進入下一個執行的行時,我的調試器直接跳到行mCamera = new camera_qcam_ex_t();
並執行它。考慮到if/else語句的性質,這可能如何發生?
注意:如果我用另一個簡單的else語句替換else,則會看到相同的行爲。
你在調試發佈版本嗎? – pstrjds 2013-04-30 17:27:13
重新編譯失敗是我想到的第一件事情。 – dasblinkenlight 2013-04-30 17:27:32
也許是雜散分號? – 2013-04-30 17:30:34