读书人

请教一个关于switch() 里的 default 语

发布时间: 2013-07-09 09:50:48 作者: rapoo

请问一个关于switch() 里的 default 语句的问题

int main(void)
{
font sample = 1 | (12 <<SIZE_SHIFT) | LEFT | ITALIC;

while (do_menu(&sample) != 'q')
continue;
puts("Bye!");
return 0;
}

char do_menu(font * f)
{
char response;

show_font(*f);
show_menu();
response = get_choice("fsabiuq"); // 这里确保了 输入数据在这几个字母之间;
switch(response)
{
case 'f' : get_id(f); break;
case 's' : get_size(f); break;
case 'a' : get_align(f); break;
case 'b' : *f ^= BOLD; break;
case 'i' : *f ^= ITALIC; break;
case 'u' : *f ^= UNDERLINE; break;
case 'q' : break;
default : fprintf(stderr, "menu problem\n"); // 这里为什么还要用个default 语句啊??
} // 根本不可能 用到default的啊!!

return response;
}


[解决办法]
default: 就是不满足以上所有条件时执行的
[解决办法]
楼上正解!不可预估的错误也要考虑好,这样才会减少BUG!
[解决办法]
我写程序我就是把使用程序的人当做白痴一样来写程序

你自己知道怎么输入才对

但是其他使用的人你就不知道他会如何操作了
[解决办法]
代码风格问题。。。不怕一万,就怕万一。。Bug往往就是这样产生的。

读书人网 >C语言

热点推荐