전역변수
전역변수의 특징
* 전역변수를 사용하는 가장 큰 이유는 접근성과 생명주기이다.
* 전역변수는 메모리에서 데이터(data) 섹션에 들어가 있다. 정적 변수 또한 같다.
* 전역변수는 프로그램이 시작될 때 생성되고, 프로그램이 종료될 때 삭제된다.
* 값을 넣지 않으면 0으로 초기화된다.
분할 컴파일 and 전역변수의 단점
* 파일이 여러 개일 때 컴파일러는 각각의 파일을 따로 컴파일해서 오브젝트 파일로 만들고,
나중에 링킹 과정을 거쳐 하나의 실행파일로 만든다.
* 전역변수는 데이터 영역에 들어가 있으며 다른 파일에서도 사용할 수 있다.
다른 파일에서도 사용할 수 있다는 점은 장점이지만,
다른 사용자가 사용하는 것을 막지 못한다는 점은 큰 단점이다.
누구나 사용하는 전역변수
* 프로그래머가 전역변수를 만들었지만 다른 사람과 공유하고 싶지 않을 수 있다.
이때 exturn 키워드를 사용하면 전역변수 작성자는 이를 막을 수 없다.
* 해결법 중 하나는 다른 사용자에게 전역변수의 변수명을 알려주지 않는 것이다.
* 다른 해결법은 static 키워드를 사용하는 것이다.
static 변수
* static 변수는 전역변수와 같은 생명주기를 가지고 있다.
* static 변수는 범위가 지역변수와 같다.
즉, static 변수는 지역변수와 같은 범위, 메모리는 데이터 섹션이고, 생명주기는 프로그램과 같다.
* 외부의 접근을 막으며, 전역변수의 장점을 사용할 수 있는 방법이다.
* 함수에 static을 붙이면 어떤 짓을 해도 외부에서 사용할 수 없다.
귀여운 그림은 낡은 창고님이 그리셨습니다.
반응형
'C' 카테고리의 다른 글
라이브러리 (0) | 2021.02.07 |
---|---|
restrict 키워드 (0) | 2021.02.06 |
전처리기와 매크로 <3> (0) | 2021.02.04 |
전처리기와 매크로 <2> (0) | 2021.02.03 |
전처리기와 매크로 <1> (0) | 2021.02.03 |