0
は、私はシンプルなtest.c
ファイルを作成します。なぜコンパイラは変数が再定義されていると不平を言わないのですか?
#include <stdio.h>
int a;
int a = 100;
void printA(void)
{
printf("a is %d\n", a);
}
は、オブジェクトファイルを生成するためにコンパイルします。
$ gcc -c test.c
$
それはOKです!しかし、私の理解によれば、変数a
は再定義する必要がありますか?
"2番目のケースでは、関数内で定義されています"。いいえ、そうではありません。両方ともグローバルです。 – kaylum