在我计划的一部分,我的代码:为什么我的程序进入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