强烈要求解释,SWITCH 无视CASE

tanqing900920 2012-01-08 02:47:33
void outchar ( CONSOLE *pcon,char ch )
{
BYTE *pvideo = (BYTE*)(VIDEO_MEM_BASE + pcon->curpos * 2);
UINT32 org = pcon->org_addr,curpos = pcon->curpos;

switch ( ch )
{
case 0x0A:
pcon->curpos = 80 * ((curpos)/80 + 1);
break;
case '\b':
break;
deafault:
pvideo[0] = ch;
pvideo[1] = getrgb ();
pcon->curpos ++;
break;
}
setcurpos (pcon->curpos);
}
>> 我在GDB调试的时候,竟然发现,当CH = 0x0A的时候,竟然直接跳到最后,SWITCH都没有执行,
而当CH等于其他数据的时候,不管怎么写都是从第一个CASE执行后BREAK,但是写IF判断就没任何问题
求高人指点
...全文
71 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ww2000e 2012-01-09
  • 打赏
  • 举报
回复
ch=0xA;
switch ( ch )
这样呢?
lgch123456 2012-01-09
  • 打赏
  • 举报
回复
建议你把你的ch打印出来看看,肯定是你的条件不对,不用怀疑c语言的语法
tanqing900920 2012-01-09
  • 打赏
  • 举报
回复
太惭愧了。。。,难以置信的小错误。。。,害我把用汇编写了一遍,后来我朋友一看就发现了这么个小错误。。。。。,留给你们猜猜。。。。

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧