연산장치, 기억장치
연산(cpu)
기억: RAM(주기억), HDD(보조기억)
RAM 변수 생성 영역.
stack: 자동 변수 a = 5;
heap: 동적할당 malloc()
data: 정적변수 static a = 5;
원형
기억부호 자료형 이름 = 초기값
기업부호: auto, static, register
자료형: 정수, 실수, 변수, 지역변수, 전역변수, 구조체, 공용체
지역변수: scope { } 안에 선언
전역변수: scope { } 밖같쪽 선언
전역변수.
static 선언: 전역으로 설정 되며 메모리의 data 영역에 위치한다.
지역변수 선언에서 static 키워드를 사용하면 전역변수와 동일하게 사용된다.
exten 키워드: 외부 파일에 선언된 외부 변수 선언. 선언과 정의를 분리한다.
exten 선언시 외부 파일에 정의된 변수 접근한다.
함수에 exten 키워드를 사용하지 않아도 자동으로 호출 한다.
지역변수
매개변수: 인자 전달 변수는 지역변수 이며, 자동 변수이다.
즉, scope { } 사이에 동일한 변수 이름을 선언해서는 안된다.
식별자 검색 순위:
1. 가장 최근에 scope 형성된 안에서 탐색.
2. 최대 함수의 바디까지 탐색한다.
3. 그리고 없으면 전역위치에서 탐색한다.
register: 최적화에 적용하는 변수이다. 하지만 현 시대의 컴파일 및 cpu에서 높은 효율은 없다.
현한정어
const : 상수화 할 것이다.(문법적 구성 Road Only)
volatile: 최적화 금지(향후 변경될 가능성이 존재하므로 최적화 필요 없음)
최적화: 컴파일러가 한다. 번역할 때 컴파일러가 어떻게 번역 하는야에 따라 성능이 다르다.
컴파일러가 성능이 좋으면은 같은 코드라고 해도 성능은 차이가 난다.
댓글 없음:
댓글 쓰기