3 ms·
C's variable definition rules are different from C++'s. gcc happily compiles those two lines, g++ exits with the "redefinition" error.
by khedoros1 10y ago
C's variable definition rules are different from C++'s. gcc happily compiles those two lines, g++ exits with the "redefinition" error.
- E6300 10y agoThat was unexpected.
- shabbyrobe 10y agoSaid every C programmer ever!
- caf 10y agoYes, in C a plain int i; at file scope is a tentative definition - if, by the end of the compilation unit, no definition has been seen, one of them will become a definition, otherwise it is just a declaration. On the other hand, this: int i = 0; is a definition, and you can't have two of those.