重複の可能性:
C では許可されているが C++ では許可されていない再定義?
#include<stdio.h>
int i;
int i;
int main()
{
// int i;
// int i;
printf("%d\n",i);
return 0;
}
~
上記のコードはエラーなしで実行されますgcc -Wall -Werror demo.c -o demo
しかし、local
i
変数のコメントを外すと、コメントアウトされ、global
i
エラーが発生します。
In function ‘main’:
demo.c:7:6: error: redeclaration of ‘i’ with no linkage
demo.c:6:6: note: previous declaration of ‘i’ was here
ここでのこのローカル グローバルの概念は何ですか?, どなたか説明してください。