int a = 6; main() { }
No. Most objects, when lacking an explicit type, default to int.
main() { int a = 6; }
"Why this "int" can not be omitted? Why the global definition can?" Think about this example: int a; a=6; //Illegal main() { a=6; //ok } If you still don't get it, reach for your 'C' book.