July 09, 2008

Header file and static variable in C

보통 header file에 #ifdef를 이용해서, header file이 여러번 include되는 것을 막는다. 여기서 조금 햇깔릴 수 있는 것이. 유의할 점은 이러한 과정이 전체 project 별이 아니라, 각 source file 별로 일어난 다는 것이다. 그렇기 때문에, header file에 static global variable을 정의 하게 되면 각 source file 별로 static variable이 생기게 되기 때문에 의도했던 global variable로의 역활을 할 수 없게 된다. C에서 전체 project에서 공유하기 위한 목적으로 global variable을 만들고자 할 때는, source file에서 global variable을 정의하고, 사용하는 곳에서 extern으로 해당 variable을 참조하도록 하는 것이 올바른 방법이다.

No comments:

Post a Comment