혼자 공부하는 C 언어 - YES24
혼자 해도 충분하다! 1:1 과외하듯 배우는 C 프로그래밍 자습서이 책은 독학으로 C 언어를 배우는 입문자가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있도록 구성했다. ‘무엇을’ ‘어떻게’ 학
www.yes24.com
지금까지 사용했던 변수는 지역 변수입니다. 지역 변수는 범위가 함수 내, 즉 일정 지역에서만 사용하는 변수입니다. 본래 auto 예약어와 함께 함수 안에 지역 변수를 선언합니다. auto 예약어는 생략할 수 있으며 이 경우 함수 안에 선언된 변수는 자동으로 지역 변수가 됩니다.
지역 변수는 사용 범위가 블록 내부로 제한되므로 다른 함수에서는 사용할 수 없습니다. 따라서 다른 함수에 같은 이름의 변수를 선언해도 이름이 서로 충돌하지 않습니다. 간단한 예제를 통해 확인해보겠습니다.
#include <stdio.h>
void assign(void); // 함수 선언
int main(void)
{
auto int a = 0; // 지역 변수 선언과 초기화, auto는 생략 가능
assign(); // 함수 호출
printf("main 함수 a : %d\n", a);
return 0;
}
void assign(void)
{
int a; // main 함수에 있는 변수와 같은 이름의 지역 변수, auto 생략
a = 10; // assign 함수 안에 선언된 a에 대입
printf("assign 함수 a : %d\n", a); // assign 함수에 선언된 a값 출력
}
지역 변수의 사용 범위를 함수 단위로 제한하고 독립된 저장 공간을 확보하면 두가지 장점이 있습니다.
일단 메모리를 효율적으로 사용합니다. 지역 변수는 함수 안에서만 사용하므로 함수 가 반환되면 그 저장 공간을 계속 유지할 필요가 없습니다. 따라서 운영체제는 지역 변수가 선언된 함수가 반환되면 할당된 저장 공간을 자동으로 회수하여 재활용 합니다.
그리고 디버깅에 유리합니다. 지역 변수는 값에 문제가 있을 때 수정하기 쉽습니다. 예를 들어 10행에서 출력한 a의 값이 예상한 값이 아닌 경우 a가 선언된 main 함수에서만 그 원인을 찾으면 됩니다.
그런데 지역 변수가 할당된 저장 공간은 자동으로 초기화되지 않으므로 쓰레기 값이 사용되지 않도록 주의해야 합니다. 또한 사용 범위가 하나의 함수로 제한되므로 2개 이상의 함수에서 데이터를 공유하기가 쉽지 않습니다. 그러나 이러한 불편함보다 장점이 더 크므로 다른 종류의 변수보다 지역 변수를 최우선으로 사용해야 합니다. 지역 변수를 여러 함수에서 공유하는 방법은 다음 절에서 자세히 다룹니다.
'프로그래밍언어 > C 언어' 카테고리의 다른 글
[혼자 공부하는 C언어] 전역 변수 (0) | 2022.12.10 |
---|---|
[혼자 공부하는 C언어] 블록 안에서 사용하는 지역 변수 (0) | 2022.12.10 |
[혼자 공부하는 C언어] 연산 함수 직접 구현 (0) | 2022.12.10 |
[혼자 공부하는 C언어] 문자열을 비교하는 strcmp, strncmp 함수 (0) | 2022.12.10 |
[혼자 공부하는 C언어] 문자열 길이를 계산하는 strlen 함수 (0) | 2022.12.10 |