int D = 1234;
void function_xxx()
{
char D;
printf( "%d", D );
}
이렇게 해놓고.. 아놔.. 왜 D가 이상한 숫자가 나오지? 1234가 나와야 하는데..라고 생각하며 삽질을 할 수 있다.
C언어에서 변수의 사용은 가까운놈이 우선이므로 전역변수 D보다 로컬변수 D가 우선이므로 1234가 나올리가 없다.
전역변수 사용시 극히 주의하고 전역변수는 이름을 특별히 지어서 해깔리지 않도록 한다.
각자 개인차가 있겟지만 예를 들어 전역은 G_xxx 식으로 변수 이름을 지어주자. 아니면
별도의 구조체나 클래스의 맴버로 만든 후 static 변수로 만들어놓고 쓰던가.
No comments:
Post a Comment