Hola gente!
estoy haciendo un programa con una sentencia switch muy extensa, y me encontre con un error bastante simple que no eh podido eliminar.
el codigo reducido al problema es este (esta hecho para wingdows):
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
int main(void){
    char caracter;
    
    printf("%dn",VK_NUMPAD0);
    printf("%dnn",VK_NUMPAD9);
 
    printf("%dn",'1');
    printf("%dnn",'9');
 
    printf("%dn",'A');
    printf("%dnn",'Z');
 
    for(caracter = 0; caracter < 256; caracter++){
            switch(caracter){
                case 'A'||'B'||'C'||'D'||'E'||'F'||
                     'G'||'H'||'I'||'J'||'K'||'L'||
                     'M'||'N'||'O'||'P'||'Q'||'R'||
                     'S'||'T'||'U'||'V'||'W'||'X'||
                     'Y'||'Z'||
 
                     '1'||'2'||'3'||'4'||'5'||
                     '6'||'7'||'8'||'9'||'0':
                            printf("aguante...n");
 
                    break;  
                case VK_NUMPAD0||VK_NUMPAD1||VK_NUMPAD2||VK_NUMPAD3||VK_NUMPAD4||
                     VK_NUMPAD5||VK_NUMPAD6||VK_NUMPAD7||VK_NUMPAD8||VK_NUMPAD9:                    
                        printf("..el metal!!n");                                       
                    break;
            }
    }
 
    return 0;
}
 
el error q obtengo es el de que el valor case '1' ya ha sido utilizado.
Lo extraño , o capaz mi mal interpretacion del error, es que ninguna constante usada en los cases es 1, imprimi sus valores al comienzo del programa y demuestra que no hay valores repetidos.
sera que estoy utilizando mal la sentencia switch case?
saludos!