C언어 - 함수, 전역변수, 지역변수

Jocy·2022년 5월 1일
0

함수란?

특정한 기능을 따로 분리해놓은 것

함수는 유지보수 및 가독성, 재활용성이 좋습니다.
매번 같은 코드를 반복적으로 만들어낼 필요도 없고
함수마다 고유한 기능들을 나눠져 있기 때문에 유지보수에도 용이합니다.

함수를 사용할 경우 주의해야할 점

  1. 함수의 위치
    C언어는 절차지향 언어라서 차례대로 소스 코드를 해석합니다.
    함수 선언이 main 함수 아래에 있다면 인식을 하지 못합니다.
    컴파일러에 따라서 에러 메시지를 출력하기도 하고 정상적으로 실행하는 컴파일러가 있습니다.
#include <stdio.h>

int func1(void); // 함수의 원형을 우선적으로 선언

int main()
{
	func1();
	printf("함수 실행 완료\n");

	return 0;
}

int func1(void)
{
	printf("예시 함수입니다.\n");
	
	return 0;
}

어떤 함수가 있다는 사실을 알려주려면 함수 선언(function declaration)을 해주어야 합니다.
함수 선언은 다음과 같이 반환값 자료형, 함수 이름, () (괄호)순으로 적어주고 ; (세미콜론)을 붙입니다. 특히 여기서는 함수를 정의할 때와는 달리 {} (중괄호)를 사용하지 않습니다.
그래서 위와 같이 함수의 원형을 선언해주면 이러한 문제를 해결할 수 있습니다.
굳이 원형을 위에 선언하고 아래에 다시 정의를 할 필요가 있을까 싶지만 코드가 여러개, 여러줄이 된다면 전체의 코드들을 파악하기 어렵기에 원형을 선언해주는 것도 좋은 방법이 될 수 있습니다.

전역변수와 지역변수

지역변수 : 한 지역 내에서만 사용할 수 있는 변수
전역변수 : 어느 지역에서나 사용할 수 있는 변수

지역변수

한 지역 내에서만 사용할 수 있는 변수입니다.
여기서 지역이란 중괄호에 의해 만들어진 영역을 뜻합니다. main 함수내의 변수들도 지역변수 입니다.
따라서 다른 함수 내에서 main 함수에서 선언된 변수들을 사용할 수 없습니다.
다른 함수에서 선언된 지역 변수를 사용하려면 return 한 후 main에서 따로 저장 해두어야 합니다.

전역변수

어느 지역에서나 사용할 수 있는 변수입니다.
괄호 밖에 쓴 변수는 전역변수 입니다. 전역으로 선언하면 어느 함수이든 변수 사용이 가능합니다.
전역 변수는 프로그램의 시작과 동시에 메모리 공간에 할당되어서 프로그램이 종료될 때까지 존재합니다.
꼭 필요한 경우가 아니라면 지역변수 사용을 권장합니다.

profile
Software Engineer

0개의 댓글