Sunday, October 01, 2006
C언어/경고] warning: unreferenced local variable
다음은, C언어 컴파일 때 자주 일어나는 초보적인, 컴파일러 경고(워닝) 메시지들을 해석해 놓은 것입니다.
0.cpp
경고(warning) 메시지들이 나오지 않도록 소스를 수정해 주어야 합니다. 경고들을 방치하면 나중에 버그투성이의 프로그램이 됩니다.
전역 변수가 자동 초기화된다는 것이 그리 좋은 것은 아닙니다. 자동 초기화하느라 시간이 걸리기 때문입니다. 그리고 되도록 전역 변수를 쓰지 않는 것이 좋습니다. 전역 변수를 사용하면 프로그램이 뒤죽박죽될 가능성이 높아집니다.
0.cpp
#include <stdio.h>
int g; // 이런 전역변수는 자동으로 초기화되며,
// 사용하지 않더라도 경고 없음
void main(void) {
int i; // warning C4101: 'i' : unreferenced local variable
// 지역 변수 i 를 선언해 놓고 사용하지 않았다는 경고
int j;
char s[] = "foo"; // warning C4189: 's' : local variable is initialized but not referenced
// 지역 변수를 초기화해 놓고 사용하지 않았다는 경고
printf("g = %d\n", g); // 전역 변수라서 자동 초기화되어 경고 없음.
printf("j = %d\n", j); // warning C4700: local variable 'j' used without having been initialized
// 지역변수 j를 초기화하지 않고 사용했다는 경고. 초기화시킨 후 사용해야 이 경고가 없어짐.
}
int g; // 이런 전역변수는 자동으로 초기화되며,
// 사용하지 않더라도 경고 없음
void main(void) {
int i; // warning C4101: 'i' : unreferenced local variable
// 지역 변수 i 를 선언해 놓고 사용하지 않았다는 경고
int j;
char s[] = "foo"; // warning C4189: 's' : local variable is initialized but not referenced
// 지역 변수를 초기화해 놓고 사용하지 않았다는 경고
printf("g = %d\n", g); // 전역 변수라서 자동 초기화되어 경고 없음.
printf("j = %d\n", j); // warning C4700: local variable 'j' used without having been initialized
// 지역변수 j를 초기화하지 않고 사용했다는 경고. 초기화시킨 후 사용해야 이 경고가 없어짐.
}
경고(warning) 메시지들이 나오지 않도록 소스를 수정해 주어야 합니다. 경고들을 방치하면 나중에 버그투성이의 프로그램이 됩니다.
전역 변수가 자동 초기화된다는 것이 그리 좋은 것은 아닙니다. 자동 초기화하느라 시간이 걸리기 때문입니다. 그리고 되도록 전역 변수를 쓰지 않는 것이 좋습니다. 전역 변수를 사용하면 프로그램이 뒤죽박죽될 가능성이 높아집니다.
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home