전역 변수,지역변수 그리고 static 변수
전역변수
- 전역변수는 함수외부에 선언된다.
- 프로그램의 시작과 동시에 메모리공간에 할당되어 종료시까지 존재한다.
- 별도의 값으로 초기화 하지 않으면 0으로 초기화된다.
- 프로그램 전체 영역 어디서든지 접근 가능하다.
프로그램 전체영역에서 접근이 가능한 전역변수는 많이 쓰면 좋지않다. 전역변수의 변경이 전체 프로그램의 변경으로 이어질 수 있다. 전역변수에 의존적인 코드는 프로그램 전체에 걸쳐서 찾아내야 한다.
static 변수
전역변수와 성격이 같다(전역 변수+a). 딱 1회 초기화되어 프로그램 종료시까지 메모리 공간에 존재한다. 하지만 접근권한은 선언된 함수내에서만 접근이 가능하다.
register 변수
원래 register는 CPU내부에 존재하는 접근이 가장 빠른 메모리 장치이다.
int simple(void)
{
register int num1 = 3;
}
"컴파일러야, 이 변수는 빈번히 사용되는 것이니, 가장 빠른 레지스터에 저장하는 것이 성능향상에 도움이 될거야!" 라는 의미를 가진다.
이해적인 측면에서는 그러하지만 실용적 측면에서는 register 변수로 선언한다 하더라도 컴파일러가 알아서한다..
재귀함수
자기자신을 호출하는 함수, 재귀함수?
함수에 자기 자신을 호출하는 재귀 명령어가 CPU가 읽는 순간!
메모리에 한번 더 그 함수가 올라가게 된다.
이 무한루프를 종결시키기 위한 종결조건이 필요하다.
탈출조건이 성립할 때, 반환은 그 함수를 호출한 이전 재귀 함수로 반환된다.
호출의 역순으로 반환되어 결국 맨 첫번째 함수로 반환이 된다.
Author And Source
이 문제에 관하여(전역 변수,지역변수 그리고 static 변수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@marintelli/변수종류저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)