main = 195;

main = 195;

It throws no exception in IA32 architecture.

Because 195 == 0xc3 means "ret" in IA32.

but,

char main = 195;

throws segmentation fault in my environment.

Because it is optimized.

We can control this exception by investing "volatile" attribute.

volatile char main = 195;

And then, we can make main return EXIT_SUCCESS.

volatile long long main = 0xc300000000b89090LL;

It means "nop;nop;mov $0x0,%eax;ret".

My environment is Debian GNU/Linux sid(unstable), cc(gcc) 4.3.3.