커널같은 대규모 프로젝트에서, 같은 변수나 함수명을 사용하는 경우가 많은데 이 경우 전역선언 시  static으로 선언하지 않으면 컴파일러는 같은 이름 중 어떤걸 사용해야 할 지 몰라 에러를 뱉어냅니다.

오류 LNK1169 여러 번 정의된 기호가 있습니다. ConsoleApplication15 d:\ConsoleApplication15\Debug\ConsoleApplication15.exe 1

오류 LNK2005 "int a" (?a@@3HA)이(가) ConsoleApplication15.obj에 이미 정의되어 있습니다. ConsoleApplication15 d:\ConsoleApplication15\ConsoleApplication15\j.obj 1

이를 해결하려면 변수나 함수 앞에 static 을 붙이면 됩니다. 그럼 해당 소스 내에서만 사용이 가능해집니다.


함수 내에서 static 변수를 사용할 경우

출력결과

1

2

3

1

1

1




+ Recent posts