| [ CnUnix ] in KIDS 글 쓴 이(By): ahsarang (.아.사.랑.) 날 짜 (Date): 2002년 7월 17일 수요일 오전 04시 29분 41초 제 목(Title): Re: 소스파일이 여러개일때 전역변수 선언 아래와 같을 때 a는 분명(반드시!) 중복 정의 오류여야할 거 같습니다. 둘 중 하나가 static int a;로 정의되지 않는다면요. 여러명의 개발자가 각각 다른의도로 전역변수를 선언했는데 우연히 변수명이 같다면, 그걸 컴파일러가 자기맘대로 같은 넘으로 취급해버린다면 어찌될까요??? 이런 컴파일러가 있다면 저는 기꺼이 안쓰겠습니다. :) 글고 #define어쩌구 넣어서 header file에 정의를 넣으려는 시도는 하지 않는것이 좋겠습니다. 많은 사람들의 정신건강을 위하여... 위 minosa님이 잘 설명해주신거 같은데 선언과 정의는 구분하는것이... > > 저는, 질문 자체의 상황이, 제가 이해하고 있는 것과 > 달라서 궁금해지는데요. > > preprocessing이 되어서 헤더파일은 다 처리되었다고 치고, > > 이를테면, > > test1.c ============================ > void foobar (void); > int a; > > int main () > { > a = 7; > foobar (); > } > ==================================== > test2.c ============================ > int a; > void foobar (void) > { > a = 9; > } > ==================================== > > ... 이하 생략... > |