Gracias por tu ayuda pero lo que quiero es verificar esa variable en tiempo de compilacion no en tiempo de ejecucion, habra alguna forma?, yo veo que en Mikroc c lo hace.
Por eso mismo, lo que te acabo de pasar es para ese momento, por eso es STATIC assert, es mas sacando un pedacito de texto apenas comienza el articulo del segundo link dice:
Static assertions are used to check if a condition is true when the code is compiled.
assert() es para el tiempo de ejecucion.
XC8 posee una directiva de pre procesamiento #assert que evalúa a 0. Es decir, si no quiero que tal valor sea 4, entonces:
#assert VALOR == 4 // Esto implica que no sea 4.
Aunque nunca la probé, y no se si es lo que estas buscando o te sirve..
Usando el mismo codigo que te pase, uno preguntando por XC8 en el foro de microchip:
https://www.microchip.com/forums/m1126290.aspxYa que si no se cumple lo que presentas, intenta crear un enum con un valor inicial 1/0, lo cual es imposible y por eso el error.