본문 바로가기
c언어/c언어

[c언어] 함수

by ilp 2024. 7. 2.
반응형

1. 함수

💡특정 용도의 코드를 한 곳에 모아 놓은것으로 독립적인 기능을 가지는 프로그램의 구성 요소 이다.

함수의 필요성

  • 코드의 재사용: 동일한 작업을 여러번 할떄, 코드 중복을 피할 수 있다.
  • 코드 가독성: 복잡한 작업을 함수로 작성하면 가독성이 향상된다.
  • 유지보수: 함수를 수정하면 함수를 사용한 모든 부분이 수정된다.
  • 여러사람이 분할해서 작업할 수 있다.

2. 함수의 작성

구성요소

  • 반환형(Return Type): 함수가 반환하는 데이터의 타입 지정 (반환값이 없으면 void)
  • 이름: 함수를 호출할때 사용하는 함수 이름
  • 매개변수(Parameter): 함수가 입력 받는 값을 지정, 매개 변수가 없으면 빈괄호'()' 사용
  • 함수 본문(Body): 함수가 수행할 작업, '{}' 중괄호로 감싸 있다.

형태

반환형 함수이름(매개변수 목록) {
    // 함수 본문
    return 반환값; // 반환형이 void인 경우 생략 가능
}

 

예시

#include <stdio.h>

// 함수 정의
int add(int a, int b) {
    return a + b; // 두 정수를 더한 결과를 반환
}

int main() {
    int result;
    result = add(5, 3); // 함수 호출, return 값이 돌아옴
    printf("Result: %d\n", result);
    return 0;
}

👆 'add'함수는 두개 정수를 더한 결과를 반환한다. int는 반환형이고, add 함수 이름 a,b는 매개변수 이다.


3. 함수의 선언

#include <stdio.h>

int main() {
    int result;
    result = add(5, 3); //ERROR : 컴파일러는 add가 뭔지 모른다.
    printf("Result: %d\n", result);
    return 0;
}

// 함수 정의
int add(int a, int b) {
    return a + b;
}

👆 함수를 main 밑에서 정의하고 싶으면 먼저 함수를 선언해야 한다.

#include <stdio.h>

// 함수 선언 (프로토타입)
int add(int a, int b);

int main() {
    int result;
    result = add(5, 3); // 함수 호출
    printf("Result: %d\n", result);
    return 0;
}

// 함수 정의
int add(int a, int b) {
    return a + b;
}

5. 함수의 형태

👇매개 변수가 없는 함수

int func(void){

}
// func()로도 선언 가능하지만 명시적으로 적어주는 것이 좋다.

 

👇return 이 없는 함수

void func(void){

}
// return 값이 없이 사용 가능
  • void를 이용한 함수의 정의
    • void는 "존재하지 않음"을 의미한다.
    • 반환형으로 void가 선언되면 반환형이 없다.
    • void가 매개변수로 선언되면 매개 변수는 없다.

매개변수의 개수

  • 출력은 최대 하나지만, 입력을 둘 이상 될 수 있다.
  • ','를 사용하여 둘 이상의 매개변수를 선언할 수 있다.

6. 함수의 호출

  • 함수가 호출되면 호출된 함수의 실행을 위해 이동한다
  • 전달인자는 매개변수를 초기화 한다.
  • 매개변수는 선언된 함수에서만 접근할 수 있다.
  • 반환 값은 함수가 호출된 위치로 전달한다..

반응형

'c언어 > c언어' 카테고리의 다른 글

[c언어] typedef  (0) 2025.03.02
[c언어] strcnpy  (0) 2025.03.02
[c언어] strcpy  (0) 2025.03.02
[c언어] '%s'와 '%[n]s'  (0) 2024.06.08
[c언어] strcmp  (2) 2024.05.31