C 언어 - 함수의 원형 선언

컴퓨터/C

728x90
반응형

C 언어에서의 함수

C언어에서는 함수와 함수들이 서로 호출하는 형태로 프로그램이 구동됩니다. 

프로그래머들을 C언어에서 함수를 사용하기 위해서 선언과 정의를 하고 그 함수를 호출하여 사용합니다. 

외부 소스코드에서 작성된 함수를 사용하기 위해서는 extern 키워드와 함께 함수의 원형을 설명해 주어야 사용 가능합니다. 그렇다면 동일한 내부 소스코드에서 함수의 정의와 선언은 어떻게 이루어질까요? 

#include<stdio.h>
void printintro()
{
	printf("함수에서 함수를 호출 할 때 문제 발생");
	println(); // 아래에서 정의된 println함수를 호출
}

void println()
{
	printf("\n");
}

int add(int a, int b)
{
	return a + b;
}

int main()
{

	printintro();
	return 0;
}

위 소스코드의 경우 printintro라는 함수를 선언과 정의를 하는 부분에 println의 함수를 호출하도록 선언되어있습니다.

이런 경우 소스코드를 컴파일하는 경우 순서대로 컴파일을 진행하기 때문에 컴파일러는 아직 정의되지 않은 println이 정의되지 않았다 라는 에러 메시지를 발생시키게 됩니다. 

 

함수의 원형의 선언 

위와 같은 이유 때문에 컴파일러에게 작성한 소스코드에 함수명이 정의되어 있다라는 것을 알려주기 위해 함수의 원형을 합니다. 함수의 원형을 선언하게 되면 이런 문제들을 극복할 수 있고 좀 더 효율적으로 소스코드를 관리할 수 있습니다.

함수의 원형을 선언하는 방법은 아래와 같습니다.

#include<stdio.h>

//함수의 원형 선언 부 
void printintro();
void println();
int add(int, int);
int minus(int a, int b);

//메인 프로그램 작성
int main()
{

	printintro();
	return 0;
}


//실제 함수들의 정의
void printintro()
{
	printf("함수에서 함수를 호출 할 때 문제 발생");
	println();
}
void println()
{
	printf("\n");
}
int add(int a, int b)
{
	return a + b;
}
int minus(int a, int b)
{
	return a - b;
}
  • 함수의 원형은 항상 소스코드에 가장 위에 선언해 주어야 합니다.
  • 함수의 원형은 반환 타입,함수명,매개변수의 자료형이 필요합니다.
    • 매개변수의 자료형만 같아도 되지만 가독성을 향상하기 위해 매개변수의 이름도 넣어도 됩니다.
  • 함수의 원형 선언이 끝남을 세미콜론 ; 으로 알립니다.

이런 식으로 함수의 원형을 선언하게 된다면 main프로그램 아래에 함수들을 선언을 해도 문제가 없게 됩니다.  

조금 더 가독성이 좋은 소스코드를 만들 수 있게 되는 것입니다.

 

728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :