| 查看: 877 | 回复: 16 | |||
| 当前主题已经存档。 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[交流]
【求助】C语言中switch 语句的疑问
|
|||
|
【求助】C语言中switch 语句的疑问 switch (const) case 0x00010000:语句块; 。。。 这样的用法正确吗? 其中,const 为一个ulong 型变量 |
» 猜你喜欢
Bioresource Technology期刊,第一次返修的时候被退回好几次了
已经有7人回复
2025冷门绝学什么时候出结果
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有8人回复
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有5人回复
论文投稿,期刊推荐
已经有6人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
孩子确诊有中度注意力缺陷
已经有14人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
★
小木虫(金币+0.5):给个红包,谢谢回帖交流
小木虫(金币+0.5):给个红包,谢谢回帖交流
|
环境 : Intel T2050 @1.6GHz, 2.0GB RAM Mobile Intel 945GM Express Chipset Family Windows XP SP2 Pro v5.1.2600 Visual Studio 2005 SP1 Team Suit 代码: #include using namespace std; int main() { const long l_idx = 0x00010000; switch(l_idx) { case 0x00010000: cout << "case 1" << endl; break; case 0x00000000: cout << "case 2" < default: cout << "error" << endl; break; } return 0; } 汇编: --- e:\visual studio 2005\projects\democpp\ex_01\ex_01_02.cpp ------------------ #include using namespace std; int main() { 004114B0 push ebp 004114B1 mov ebp,esp 004114B3 sub esp,0D0h 004114B9 push ebx 004114BA push esi 004114BB push edi 004114BC lea edi,[ebp-0D0h] 004114C2 mov ecx,34h 004114C7 mov eax,0CCCCCCCCh 004114CC rep stos dword ptr es:[edi] const long l_idx = 0x00010000; 004114CE mov dword ptr [l_idx],10000h switch(l_idx) 004114D5 mov dword ptr [ebp-0D0h],10000h 004114DF cmp dword ptr [ebp-0D0h],0 004114E6 je main+73h (411523h) 004114E8 cmp dword ptr [ebp-0D0h],10000h 004114F2 je main+46h (4114F6h) 004114F4 jmp main+0A0h (411550h) { case 0x00010000: cout << "case 1" << endl; 004114F6 mov esi,esp 004114F8 mov eax,dword ptr [__imp_std::endl (41A338h)] 004114FD push eax 004114FE push offset string "case 1" (41780Ch) 00411503 mov ecx,dword ptr [__imp_std::cout (41A33Ch)] 00411509 push ecx 0041150A call std: perator<<0041150F add esp,8 00411512 mov ecx,eax 00411514 call dword ptr [__imp_std::basic_ostream perator<< (41A320h)] 0041151A cmp esi,esp 0041151C call @ILT+410(__RTC_CheckEsp) (41119Fh) break; 00411521 jmp main+0CBh (41157Bh) case 0x00000000: cout << "case 2" < 00411525 mov eax,dword ptr [__imp_std::endl (41A338h)] 0041152A push eax 0041152B push offset string "case 2" (417804h) 00411530 mov ecx,dword ptr [__imp_std::cout (41A33Ch)] 00411536 push ecx 00411537 call std: perator<<0041153C add esp,8 0041153F mov ecx,eax 00411541 call dword ptr [__imp_std::basic_ostream perator<< (41A320h)] 00411547 cmp esi,esp 00411549 call @ILT+410(__RTC_CheckEsp) (41119Fh) break; 0041154E jmp main+0CBh (41157Bh) default: cout << "error" << endl; 00411550 mov esi,esp 00411552 mov eax,dword ptr [__imp_std::endl (41A338h)] 00411557 push eax 00411558 push offset string "error" (4177FCh) 0041155D mov ecx,dword ptr [__imp_std::cout (41A33Ch)] 00411563 push ecx 00411564 call std: perator<<00411569 add esp,8 0041156C mov ecx,eax 0041156E call dword ptr [__imp_std::basic_ostream perator<< (41A320h)] 00411574 cmp esi,esp 00411576 call @ILT+410(__RTC_CheckEsp) (41119Fh) break; } return 0; 0041157B xor eax,eax } 结论:可以运行.不过受机器位限制. |
16楼2009-08-24 10:32:12
2楼2009-06-25 17:30:10
3楼2009-06-27 00:09:31
4楼2009-06-28 09:04:01













回复此楼
perator<<
谢谢楼上的回答,是的ulong 我这里是unsigned long 的简写,是4字节的长整型,