我正在使用Ingenico的EDC終端。下面的代碼是以前的實現中存在的。在調試過程中,我遇到了一些我很難理解的代碼塊。當案件號碼前加0時,開關箱如何工作?
short bankPEM = 0;
//bankPEM = 41; //Chip
bankPEM = 17; //Swipe
//bankPEM = 801; //Fallback
switch(bankPEM)
{
case 021: cout<<"021"; break; //Swipe
case 051: cout<<"051"; break; //Chip
case 801: cout<<"801"; break; //Fallback
default: cout<<"Default"; break;
}
bankPEM
是一個短變量。我發現下面的觀察行爲:
- 當它包含
41
時,case 051
被執行。 - 當它包含
17
時,執行case 021
。 - 當它包含
801
時,執行case 801
。
我預想的代碼執行default
案例數1 & 2. 誰能告訴在這種情況下,一些光。
我也將代碼轉換爲彙編語言。調試彙編代碼後,我將分享我的理解。
在此先感謝。
[Octal literal](http://en.cppreference.com/w/cpp/language/integer_literal) – InternetAussie
它是八進制的...... – LPs
我已經移除了問題的程序集標記, ,與裝配無關。如果需要,您可以稍後重新添加它。請記住,程序集標籤總是帶有特定的體系結構標籤(例如,x86-64,arm,mips,...) –