c언어 프로그래밍 기초문법 - 함수 

 

 

함수 (Function)

 

 

함수는 특정 행위, 동작을 수행하기 위해 만들어 놓은 기능을 말한다. 함수를 정의하지 않고 프로그래밍이 가능하지만 반복적인 동작을 효율적으로 수행할 수 있고, 유지보수 측면에서도 함수 사용이 용이하다. 코드 상에서 함수를 호출하는 순간, 코드가 함수의 수행문으로 ‘점프’한 뒤 수행문이 끝나면 ‘호출했던 위치’로 다시 돌아와 다음 코드를 수행한다.

함수를 사용하는 이유이자 특징은 첫 번째로 높은 재사용성이다. 함수를 한 번 만들어 놓으면 언제든 호출해 사용할 수 있다. 두 번째, 중복된 코드의 제거가 가능하다. 마지막으로 프로그램을 구조화할 수 있다.

함수의 기본 구조는 다음과 같다.

 

반환타입 함수이름(매개변수)
{
수행문
}

 

int Add(int iNum1, int iNum2)
{
	return (iNum1 + iNum2);
}

 

void PrintAdd(int iNum1, int iNum2)
{
	if (iNum1 == 0 && iNum2 == 0)
	{
		printf("둘 다 0이다.\n");
		return; //void일 때 그냥 return; 사용하면, 마치 반복문의 break;와 같은 효과 
	}
	printf("두 수의 합 : %d\n", (iNum1 + iNum2));
}

 

 

1) 매개변수

 

함수의 기능 수행을 위해, 함수가 호출 될 때 받을 값을 담는 변수다. 필요 여부에 따라 사용해도 되고 생략 또한 가능하다. 매개변수에 개수 제한은 없다.

매개변수는 ‘지역 변수’이기 때문에, 함수가 호출 됐을 때 생성되고 함수의 수행이 끝나면 자동으로 소멸한다.

 

 

 

2) 함수이름

 

이 함수가 어떠한 기능을 수행하는지 의미를 부여한다. 변수명을 정할 때처럼 함수 이름도 함수의 기능을 잘 드러내는 이름으로 짓는 것이 좋다. 다만, 변수명과 같이 C언어에 이미 정해진 내장 함수명과 겹치지 않도록 주의해야 한다.

 

 

 

3) 반환 타입(Return Type)

 

함수의 기능 수행이 끝나고, 호출했던 위치로 돌려줄 값의 타입이다. 쉽게 말해 함수의 최종적으로 반환되는 출력이 어떤 타입인지 나타낸다. 반환할 값이 없다면 void라고 명시한다.

반환 타입이 void가 아니면 반드시 함수의 수행문 안에 'return'이 있어야 한다. return을 이용해 반환 타입과 일치하는 값을 반환해줘야 하기 때문이다. 만약 반환 타입이 정수형(int) 면

'return 0;'처럼 정수를 반환해준다. 반환되는 값은 여러 개일 수 없다.

 

 

※ 반환 타입과 매개변수 유, 무에 따른 함수의 형태

1. 둘 다 있다.
2. 둘 다 없다.
3. 매개변수만 있다.
4. 반환타입(즉, 반환 값)만 있다.

 

※ 함수의 세 가지 상태

1. 선언 : 함수의 원형을 미리 알려주는 용도로 쓰인다. 뒤에 세미콜론(;)을 붙인다.
	> 함수의 원형 : ‘반환타입 함수명(매개변수);‘의 구조를 갖는다.
2. 정의 : 함수를 만든다. (수행문 작성)
3. 호출 : 함수를 사용한다. (매개변수가 있으면 함께 전달)

 

 

반응형

+ Recent posts