打印

switch语句的条件变量不能是bit类型的???

[复制链接]
9516|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Mindist|  楼主 | 2009-10-19 12:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
chen3bing| | 2009-10-19 13:35 | 只看该作者
C语言书上写道:
switch后面括弧内的表达式,可以是整形表达式或字符型表达式,也可以是枚举型数据。
对其他类型,原来的C标准不允许,新标准可以为任何类型。

使用特权

评论回复
板凳
Mindist|  楼主 | 2009-10-19 13:39 | 只看该作者
2# chen3bing
那C51可不可以的?我试了试不行的。。晕~

使用特权

评论回复
地板
xwj| | 2009-10-19 14:13 | 只看该作者
bit类型只有两种状态,还switch啥呀?

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
bhsdlmj + 1
5
bhsdlmj| | 2009-10-19 15:16 | 只看该作者
再来一个问题

switch (afda)
    case(1)
         do somtheing1;
   case(2)
         do something2;
   default :
        do nothing;
}


switch (afda)
    case(2)
         do somtheing2;
   case(1)
         do something1;
   default :
        do nothing;
}

是一样的么?
注意 没有break啊
!!!哈哈

使用特权

评论回复
6
john_light| | 2009-10-19 15:26 | 只看该作者
你还是抱一本C语言的入门书啃啃吧

使用特权

评论回复
7
Fungin| | 2009-10-19 15:34 | 只看该作者
WL,钻牛角尖了吧??

使用特权

评论回复
8
Mindist|  楼主 | 2009-10-19 16:14 | 只看该作者
4# xwj
我知道,只是突然碰到这问题了就问问哈。。。

使用特权

评论回复
9
Mindist|  楼主 | 2009-10-19 16:15 | 只看该作者
5# bhsdlmj
是不一样啊。。。

使用特权

评论回复
10
xwj| | 2009-10-19 16:18 | 只看该作者
唉...

没有break的话,会从进入点一路执行下去,直到遇到break或者执行完下面所有的项(case和default ),直到遇到大括号才跳出。

没有break的话,5楼那两种当然是不一样的,比如case为1和case为2时。

写出这样的代码来,绝对该拉出去打PP打死
不想被打死的话就先去找本C语言的入门书啃啃吧。

使用特权

评论回复
11
Mindist|  楼主 | 2009-10-19 18:02 | 只看该作者
10# xwj
⊙﹏⊙好像大家不是完全明白我的意思。。。
我是说为什么switch(x)中的x为什么不可以是bit类型的。。。
和switch的运行方式。。。没什么联系吧?⊙﹏⊙

使用特权

评论回复
12
datouyuan| | 2009-10-19 18:04 | 只看该作者
bit类型只有两种状态,还switch啥呀?
xwj 发表于 2009-10-19 14:13


这已经说得很明白了。

使用特权

评论回复
13
arm_fan168| | 2009-10-19 19:23 | 只看该作者
bit型不是C语言的标准数据类型,C关键字没有bit。而且楼主贴出来的编译器错误提示已经说的很明确了,类型不合法。

使用特权

评论回复
14
Mindist|  楼主 | 2009-10-20 07:19 | 只看该作者
13# arm_fan168
明白了。。。多谢~~

使用特权

评论回复
15
hyg1984| | 2009-10-20 10:56 | 只看该作者
哈,无聊的人还真是多,就一个0和1嘛,还用switch()?直接用if,else得了。。。。。。:L
不过嘛,我是学到东西了,嘿嘿

使用特权

评论回复
16
Mindist|  楼主 | 2009-10-20 13:19 | 只看该作者
15# hyg1984
谁不知道用if else啊。。。⊙﹏⊙b汗
碰到问题就想问呗~

使用特权

评论回复
17
lovecat99| | 2016-1-5 23:53 | 只看该作者
本帖最后由 lovecat99 于 2016-1-5 23:54 编辑
bhsdlmj 发表于 2009-10-19 15:16
再来一个问题

switch (afda)

臭显摆

如果afda=2,case 2在后只执行do something 2; case 2在前就do something2, do something1都执行。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:生活不懂我,但是我得懂生活。

13

主题

137

帖子

1

粉丝