C 스터디 4주차

함수

함수란?

특정 작업을 수행하는 코드의 집합

함수의 기본 요소

  int sum(int x, int y)
  {
    int result;
    result = x + y;

    return result;
  }

  /*
  매개 변수 x, y를 입력받아 sum() 함수의 기능을 수행하고 출력 형태는 int형으로 반환하라는 함수
  */

함수의 형태

  int sum(int x, int y)
  {
    int result;
    result = x + y;  
    return result;
  }
  • 출력 형태 : 있음(int)
  • 입력 형태 : 있음(int x, int y)
  • 특징 : 출력 형태가 있어서 함수 내에서 반드시 return문을 사용해야 한다

    int input(void)
    {
    int number;
    scanf("%d", number);
    return number;
    }
    
  • 출력 형태 : 있음(int)

  • 입력 형태 : 없음(void)
  • 특징 : 출력 형태가 있어서 함수 내에서 반드시 return문을 사용해야 한다

    void print(int x)
    {
    printf("%d\n",x);
    }
    
  • 출력 형태 : 없음(void)

  • 입력 형태 : 있음(int)
  • 특징 : 출력 형태가 void이므로 함수 내에 return문이 없어도 된다
void print2(void)
{
  printf("서현범\n");
}
  • 출력 형태 : 없음(void)
  • 입력 형태 : 없음(void)
  • 특징 : 출력 형태가 void이므로 함수 내에 return문이 없어도 된다

함수 선언

C언어는 절차지향(순서지향) 언어이기 때문에 코드를 컴파일할 때 컴파일 방향은 위에서 아래로 진행된다.

 #include <stdio.h>

 int sum(int x, int y)
 {
   int result;
   result = x+y;
   return result;
 }

 int main(void)
 {
   int answer;
   answer = sum(3, 4);
   printf("%d\n", answer);
   return 0;
 }

따라서 위와 같은 코드는 전혀 문제가 생기지 않는다.

 #include <stdio.h>

 int main(void)
 {
   int answer;
   answer = sum(3, 4);
   printf("%d\n", answer);
   return 0;
 } 

 int sum(int x, int y)
 {
   int result;
   result = x+y;
   return result;
 }

위와 같은 코드는 main함수에서 sum() 함수를 사용하려 하지만 위에서 부터 코드를 컴파일하면 sum()함수가 존재하지 않아 오류가 발생한다.

 #include <stdio.h>

 int sum(int x, int y);

 int main(void)
 {
   int answer;
   answer = sum(3, 4);
   printf("%d\n", answer);
   return 0;
 }

 int sum(int x, int y)
 {
   int result;
   result = x+y;
   return result;
 }

하지만 함수를 먼저 선언을 해주면 오류가 발생하지 않는다. main함수 위에 sum()함수를 선언해주었기 때문이다.

results matching ""

    No results matching ""