在c中,switch语句可以有2个参数吗?

时间:2016-06-13 07:32:11

标签: c syntax switch-statement comma comma-operator

<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.1</version>
      <configuration>
        <source>1.7</source>
        <target>1.7</target>
      </configuration>
</plugin>

这在c中有效吗?

我认为它不应该,但是当我编译它时,它没有显示错误并产生输出2.

1 个答案:

答案 0 :(得分:13)

是的,这是有效,因为在这种情况下,,comma operator

引用C11,章节§6.5.17,逗号运算符,(强调我的

  

逗号运算符的左操作数被计算为void表达式;有一个   其评估与右操作数之间的序列点。 然后是右边   操作数被评估;结果有其类型和价值。

这(评估和)丢弃左操作数并使用右边的值( side )。所以,上面的陈述与

基本相同
switch(2)

只是详细说明, 使用两个值,正如您可能期望的那样,打开 1或2