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 »
	
	
    
    
    
    
  
    Advertisement
    
    
    
  
  
    Advertisement