>>821 しかし C には仮定義 "tentative definition" があったりして混迷するのです ISO/IEC 9899:1999 6.9.2.2 the behavior is exactly as if the translation unit contains a file scope declaration of that identifier, with the composite type as of the end of the translation unit, with an initializer equal to 0.