달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2011. 10. 25. 12:34

extern 변수 Hooney's 이야기2011. 10. 25. 12:34

 http://omen666.tistory.com/175 참조

a.c b.c가 있는데

b.c의 sum변수가 a.c에 필요하다
이럴 때 a.c에 extern int sum이라는 선언을 함으로써 b.c의 sum을 이용할 수 있다.

또한, 변수 뿐만 아니라, 함수에도 적용할 수 있다.
즉, 함수는 모두 extern 키워드를 컴파일러가 암시적으로 집어넣는다.

만약, a.c에도 foo()함수, b.c도 foo()가 있다. a.c에서 foo()를 호출한다. 
linker는 어떤걸 링크할지 몰라 에러를 토해냄
이때, a.c static 키워드를 넣어주면  a.c의 foo()함수와 링킹된다.
즉, static 키워드는 해당 소스외에서 참조할 수 없는 형태가 된다. 

a.c에서 extern void foo(void)하면
다른 파일의 foo()함수를 가져다 쓰겠다는 뜻 

'Hooney's 이야기' 카테고리의 다른 글

크롬 - 시티즌_Citizen(london series)  (0) 2011.10.31
printf format  (0) 2011.10.19
:
Posted by НooпeУ


Code Start Code End