Gaurav Gautam, Noida wrote:- > #include <stdio.h> > int main() > { > enum aa { > a = 0, b =127 , c > }; > printf("size = %d %d %d\n", sizeof(enum aa),sizeof(b),sizeof(c)); > printf("value= %d %d %d\n", a,b,c); > return 0; > ) > > The output is > size = 1 1 1 > value= 0 127 128 > when gcc (GCC) 3.3.1 (SuSE Linux) is used with -fshort-enums. > > And > > size = 1 4 4 > value= 0 127 128 > when (GCC) 4.1.0 20050915 (experimental) is used with -fshort-enums. > > Please confirm which of the two outputs is correct and why is there a > difference in the output of two versions of compiler? 4.1.0 is correct, therefore 3.3.1 was buggy. Neil.