```
#include <math.h>

int main(){

    signed char b = 32767;
    if (b){
        printf("YES");
    }
    else
        printf("NO");
}

```

I did not expect this to compile because signed char's range is [−127, +127] ?? I also tried to enter a value with 8 bits (12345678), that also compiled okay, 9 bits, however, caused my Avast antivirus to come up I thought the program hanged, but it compiled after a while.. My questions is shouldn't any value outside [−127, +127] be rejected by the compiler for a signed char data type?