본문 바로가기
프로그래밍언어/C 언어

[혼자 공부하는 C언어] 전역 변수

by khsnote22 2022. 12. 10.

http://www.yes24.com/Product/Goods/74269921?pid=123487&cosemkid=go15604913615239458&gclid=Cj0KCQiA1sucBhDgARIsAFoytUu_RVCPiWpDB4Qzsz8FALHdBuNhmAgRpaofWWo4P1mgrSQLSiudKFkaAuxSEALw_wcB 

 

혼자 공부하는 C 언어 - YES24

혼자 해도 충분하다! 1:1 과외하듯 배우는 C 프로그래밍 자습서이 책은 독학으로 C 언어를 배우는 입문자가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있도록 구성했다. ‘무엇을’ ‘어떻게’ 학

www.yes24.com


함수 밖에 변수를 선언하면 전역 변수가 됩니다. 전역 변수는 특정 함수의 블록에 포함되지 않으므로 사용 범위가 함수나 블록으로 제한되지 않습니다. 

 

전역 변수의 사용 범위는 프로그램 전체이므로 어떤 함수라도 안에서 직접 쓸 수 있습니다.

#include <stdio.h>

void assign10(void);
void assign20(void);

int a; // 전역 변수 선언

int main(void)
{
	printf("함수 호출 전 a 값 : %d\n", a); // 전연 변수 a 출력

	assign10();
	assign20();

	printf("함수 호출 후 a의 값 : %d\n", a); // 전역 변수 a 출력

	return 0;
}

void assign10(void)
{
	a = 10; // 저역 변수 a에 10 대입
}

void assign20(void)
{
	int a; //  전역 변수와 같은 이름의 지역 변수 선언 

	a = 20; // 지역 변수 a에 20 대입
}

전역 변수는 프로그램 시작과 동시에 할당되어 종료시까지 존재합니다. 전역 벽수는 특별한 값으로 초기화하지 않아도 0으로 자동으로 초기화됩니다. 전역 변수와 지역 변수의 이름이 같으면 지역 변수를 먼저 사용합니다.

 

전역 변수의 이름을 바꾸면 그 변수를 사용하는 모든 함수를 찾아 수정해야 합니다.

전역 변수의 값이 잘못된 경우 접근 가능한 모든 함수를 의심해야 합니다.

코드 블록 내에 같은 이름의 지역 변수를 선언하면 그 영역에서는 전역 변수를 사용할 수 없습니다. 

 

결국 사용 범위가 명확하고 통제 가능한 지역 변수를 우선적으로 사용하며 전역 변수는 많은 함수에서 수시로 데이터를 공유하는 경우 제한적으로 사용하는 것이 좋습니다.