Home »
C programs »
C common errors programs
Error: case label does not reduce to an integer constant in C
Here, we will learn why an error case label does not reduce to an integer constant in C language occurred and how to fix it?
By IncludeHelp Last updated : March 10, 2024
Error: case label does not reduce to an integer constant
This is an example of switch case in C programming language, switch case is used to check/jump on matched case value and then it executes given statement in the case block.
In the switch case statement, a case can only have integral constant values i.e. integer or character type constant value. We cannot use any variable as case value.
In this example, we are using case b: and b is a variable. Thus, error case label does not reduce to an integer constant occurs.
Example
#include <stdio.h>
int main()
{
int a,b;
a=2;
b=2;
switch(a){
case 1:
printf("Case 1\n");
break;
case b:
printf("Case 2\n");
break;
}
return 0;
}
Output
prog.c: In function ‘main’:
prog.c:15:9: error: case label does not reduce to an integer constant
case b:
^~~~
prog.c:5:11: warning: variable ‘b’ set but not used [-Wunused-but-set-variable]
int a,b;
^
How to fix?
To fix the error case label does not reduce to an integer constant, use value 2 instead of variable b. The correct statement will be case 2:
Correct Code
#include <stdio.h>
int main()
{
int a,b;
a=2;
b=2;
switch(a){
case 1:
printf("Case 1\n");
break;
case 2:
printf("Case 2\n");
break;
}
return 0;
}
Output
Case 2
C Common Errors Programs »