2016-09-20 5 views
0

글로벌 변수 링크는 전역 변수이 extern int table 및 다음과 같이 정의하고있다이 int table내가이 개 .c 인 파일 <code>1.c</code>과 <code>2.c</code>와 헤더 파일 <code>3.h</code></p> <p><code>1.c</code>이 행동

2.c 다음과 같이 정의 전역 변수를 가지고 포함 3.h

3.hint table입니다.

컴파일러에서 허용합니까? 예인 경우 의 1.c이 (2.c까지) 손상 될 가능성은 얼마나됩니까?

내가 분명히했으면 좋겠다. 감사!

답변

1

파일 1.c은 글로벌 변수 int table;을 선언합니다.

소스 파일에 포함 된 3.h 파일은 전역 변수 int table;을 선언합니다. 2.c에 포함되어 있으므로 이제 2.c도 전역 변수 int table;을 선언했습니다.

그들은 잘 컴파일되지만, table이 다중 정의 된 링커 오류가 발생할 수 있습니다.