如果我记得没错的话,switch是这么用的:
switch(int)
如果你在switch里头填的是字符的时候,即,如果你使用switch(char),是会发生隐式转化的。
不过绝大多数编译器是不会产生任何报告的,当然,如果你用极其变态的检查代码的程序:
splint来检查的话,他会这么告诉你:
Variable a initialized to type int, expects char
To make char and int types equivalent, use +charint.
如果你将char类型改回int,他就没意见了。
PS:splint这个代码检查器太变态的,要求实在太过严格,我的大部分的大一点的代码,基本都通不过他的检查,尽管我的程序运行的很好,错误处理也没问题。如果有兴趣的同志们可以去试试,我不知道windows下面有没有这个东东,我是在linux下用的。