본문 바로가기

잡다한 IT/참고용

extern & static 변수 ( global 과 local 차이점)

■ extern - 다른 파일에 해당 변수(또는 함수)가 존재할 것이라고 가정을 주는 선언


- 실제로 변수가 선언되면서 메모리를 차지하는 것이 아니다


- 해당 변수가 다른 파일에 있을 것이라는 extern 선언만으로 컴파일 가능 ( 링크는 X )




■ static ( Local ) - 지역 변수에 붙이는 static


- 다른 블록이나 함수에서 사용할 수 없다 ( 지역변수의 특성)


- 지역 변수의 특성을 갖되, 기억부류는 전역변수 ( DATA 또는 BSS)


- 프로그램이 실행되는 동안 메모리에 상주, 블록을 벗어나도 값을 유지 ( 전역 변수의 특성)




■ static ( Global ) - 전역 변수에 붙이는 static


- 파일 내에서만 사용하는 전역 변수로 지정


- 다른 파일에서 같은 이름의 전역 변수를 선언하면 1개만 할당되고 나머지는 extern


- 그러나 static 을 붙이면 그 파일에서 사용 가능한 별개의 변수가 된다.


- http://unabated.tistory.com/entry/static-%EC%A0%84%EC%97%AD-%EB%B3%80%EC%88%98

(참고 사이트)



반응형

'잡다한 IT > 참고용' 카테고리의 다른 글

텐서플로우 arg_max 함수  (0) 2018.08.07
질적자료 & 양적자료  (0) 2018.08.07
쉘 스크립트 공부 사이트  (0) 2018.07.19
컴파일 과정  (0) 2018.07.10
volatile , restrict  (0) 2018.07.09