프로그래밍에 사용되는 데이터를 기억하는 기억장소의 이름
데이터 생성, 중간결과 및 처리 결과를 기억함
한 개에 하나의 데이터만 저장
a=1;
한 개의 변수에 여러개의 데이터 저장
int a[3];
a[0]=1;
a[1]=2;
a[2]=3;
프로그램 실행시간 전에 연결되는 것
프로그램 실행시간에 연결되는 것
언어에서 허용되는 대부분의 자료구조, 프로그램구조를 확정하는 시간
언어의 정의 ➡️ int test;
언어에 대한 각 원소들의 특징을 확정하도록 하는 것
정수에 자릿수나 실수의 유효개수들을 언어구현시간에 확정하게 됨
언어에 대한 번역기 구현 ➡️ int의 범위 등
정적 바인딩이 이루어지는 시간이며 변수의 이름 또는 형, 프로그램 문자구조가 확정이 되는 시간
원시 프로그램 번역 ➡️ int test (test에 int형을 바인딩)
프로그램을 라이브러리와 링크 ➡️ 라이브러리 부 프로그램 호출
프로그램 실행을 위해 어떤 변수에 메모리 주소를 바인딩하는 시간
프로그램 실행을 위해 메모리로 적재 ➡️ 전역변수에 메모리 주소 바인딩 등
프로그램 실행 ➡️ test=10
변수에 이름, 속성을 부여하는 것
속성과 이름 부여
ex.
in C
int test
I ~ N으로 시작하면 정수타입, 그렇지 않으면 실수타입 (말 안해도 아는 것)
ex.
in Fortran
I, J, K ...
변수에 메모리 공간을 바인딩하는 작업
메모리 공간 바인딩
바인딩이 해제된 메모리 공간을 가용공간으로 회수하는 과정
변수가 특정 메모리 공간에 바인딩 되어 있는 시간
구분 | 할당 시간 | 사례 |
---|---|---|
정적할당 | 프로그램 실행 종료까지 유지 | 전역변수, static |
스택기반할당 | 함수 종료까지 유지 | 지역변수 |
동적할당 | Free시까지 유지 | malloc: 포인터로 참조 가능 |