我只是爲了學習目的而做了這段代碼。但是這樣做的時候我發現了一個問題。這裏x是常量整數,仍然是編譯器給我錯誤。我正在使用gcc編譯器。請解釋此錯誤的原因以及如何避免此錯誤。切換到C編程
#include<stdio.h>
int main()
{
int const x = 10;
int y = 20;
switch(y)
{
case x: //error: case label does not reduce to an integer constant
printf("value of x: %d\n",x);
break;
}
}
如果它是一個常量,爲什麼不使用'case 10:'代替,也需要'default' case – user1
@ user1爲了便於閱讀,記住魔法數字是不好的。 – RedX