Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 프로그래밍의 함수

<시간/>

함수는 작업을 함께 수행하는 명령문의 그룹입니다. 모든 C 프로그램에는 main()인 하나 이상의 함수가 있습니다. , 그리고 가장 사소한 모든 프로그램은 추가 기능을 정의할 수 있습니다.

코드를 별도의 기능으로 나눌 수 있습니다. 코드를 여러 기능으로 나누는 방법은 사용자에게 달려 있지만 논리적으로 구분은 각 기능이 특정 작업을 수행하도록 하는 것입니다.

함수 선언 컴파일러에게 함수의 이름, 반환 유형 및 매개변수에 대해 알려줍니다. 함수 정의 함수의 실제 본문을 제공합니다.

C 표준 라이브러리는 프로그램이 호출할 수 있는 수많은 내장 함수를 제공합니다. 예를 들어, strcat() 두 문자열을 연결하려면 memcpy() 하나의 메모리 위치를 다른 위치로 복사하고 더 많은 기능을 사용할 수 있습니다.

함수는 메소드 또는 서브루틴 또는 프로시저 등으로도 지칭될 수 있습니다.

함수 정의

C 프로그래밍 언어에서 함수 정의의 일반적인 형식은 다음과 같습니다. –

return_type function_name( parameter list ) {
   body of the function
}

C 프로그래밍에서 함수 정의는 함수 헤더와 함수 본문으로 구성됩니다. 다음은 함수의 모든 부분입니다 -

  • 반품 유형 - 함수는 값을 반환할 수 있습니다. return_type은 함수가 반환하는 값의 데이터 유형입니다. 일부 함수는 값을 반환하지 않고 원하는 작업을 수행합니다. 이 경우 return_type은 void 키워드입니다.

  • 함수 이름 - 함수의 실제 이름입니다. 함수 이름과 매개변수 목록이 함께 함수 서명을 구성합니다.

  • 매개변수 - 매개변수는 자리 표시자와 같습니다. 함수가 호출되면 매개변수에 값을 전달합니다. 이 값을 실제 매개변수 또는 인수라고 합니다. 매개변수 목록은 함수의 매개변수 유형, 순서 및 개수를 나타냅니다. 매개변수는 선택 사항입니다. 즉, 함수에는 매개변수가 포함될 수 없습니다.

  • 함수 본문 − 함수 본문은 함수가 하는 일을 정의하는 명령문의 모음을 포함합니다.

예시 코드

/* function returning the max between two numbers */
int max(int num1, int num2) {
   /* local variable declaration */
   int result;
   if (num1 > num2)
      result = num1;
   else
      result = num2;
   return result;
}

함수 선언

함수 선언 컴파일러에게 함수 이름과 함수 호출 방법을 알려줍니다. 함수의 실제 본문은 별도로 정의할 수 있습니다.

함수 선언에는 다음과 같은 부분이 있습니다. -

return_type function_name( parameter list );

위에서 정의한 max() 함수의 경우 함수 선언은 다음과 같습니다. -

int max(int num1, int num2);

매개변수 이름은 함수 선언에서 중요하지 않으며 유형만 필요하므로 다음도 유효한 선언입니다. −

int max(int, int);

함수 호출

C 함수를 만드는 동안 함수가 수행해야 하는 작업에 대한 정의를 제공합니다. 함수를 사용하려면 정의된 작업을 수행하기 위해 해당 함수를 호출해야 합니다.

프로그램이 함수를 호출하면 프로그램 제어가 호출된 함수로 이전됩니다. 호출된 함수는 정의된 작업을 수행하고 반환 문이 실행되거나 함수 종료 중괄호에 도달하면 프로그램 제어를 다시 메인 프로그램으로 반환합니다.

함수를 호출하려면 함수 이름과 함께 필요한 매개변수를 전달하기만 하면 되며, 함수가 값을 반환하면 반환된 값을 저장할 수 있습니다. 예를 들어 -

예시 코드

#include <stdio.h>
/* function declaration */
int max(int num1, int num2);
int main () {
   /* local variable definition */
   int a = 100;
   int b = 200;
   int ret;
   /* calling a function to get max value */
   ret = max(a, b);
   printf( "Max value is : %d\n", ret );
   return 0;
}
/* function returning the max between two numbers */
int max(int num1, int num2) {
   /* local variable declaration */
   int result;
   if (num1 > num2)
      result = num1;
   else
      result = num2;
   return result;
}

출력

Max value is : 200