In C, is it valid to declare a variable multiple times? -
i have below c code , expecting throw error "multiple declaration of variable", not doing so.
#include <stdio.h>  int i;         int i;      int main() {     printf("%d",i);     return 0; }   now output 0, why?
and 1 more thing below code gives error expected
#include <stdio.h>   int main() {     int i;             int i;          printf("%d",i);     return 0; }   o/p error saying re declaration of i
the first definition of i tentative definition (the 2nd tentative definition). "de facto" definitions though (and definitions serve declarations), no mistake it.
quote the standard:
6.9.2/2
a declaration of identifier object has file scope without initializer, , without storage-class specifier or storage-class specifier static, constitutes tentative definition. if translation unit contains 1 or more tentative definitions identifier, , translation unit contains no external definition identifier, behavior if translation unit contains file scope declaration of identifier, composite type of end of translation unit, initializer equal 0.
Comments
Post a Comment