본문 바로가기
1인칭 학습 시점_웹개발/C언어

[C언어] C언어 함수 정리: 함수 정의부터 반환값, 구조체 반환까지

by awesong 2024. 5. 20.
728x90
반응형

C언어에서 함수(Function) 반복되는 코드나 특정 기능을 묶어서 간결하게 만들 있는 중요한 문법입니다. 이번 글에서는 함수 정의 호출 방법, 반환값 활용, 구조체를 반환하는 함수 작성법까지 단계별로 정리해 보았습니다.

 

1. 함수란?

함수는 특정 용도의 코드를 하나로 묶어놓은 것입니다. 작성한 함수는 여러 재사용할 있으며, 코드의 가독성과 유지보수성이 향상됩니다.

 

1) 함수의 기본 구조

반환값자료형 함수이름(매개변수) {
    실행할 코드;
    return 반환값;
}

 

2. 함수 실행 순서

int main() {
    hello();       // 함수 호출
    return 0;
}

void hello() {
    printf("Hello world!");
}

 

3. 실행 순서

  1. main() 함수 실행
  2. hello() 함수 호출
  3. hello() 함수의 printf 실행
  4. "Hello world!" 출력
  5. hello() 종료
  6. main() 종료 0 반환

 

4. 함수 활용 예제

1) 덧셈 함수

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

 

2) 곱셈 함수

int multiply(int a, int b) {
    return a * b;
}

 

3) 제곱 함수

int square(int x) {
    return x * x;
}

 

4) 함수 호출 예시

int result = add(3, 5);    // result = 8

 

5. 함수에서 반환값 사용하기

함수는 return 문을 통해 값을 반환합니다. 반환된 값은 다른 변수에 저장하여 사용할 있습니다.

 

예시

float divide(float a, float b) {
    return a / b;
}

 

함수 호출:

float result = divide(10.0, 2.0);  // result = 5.0

 

6. 구조체 반환 함수

C언어 함수는 구조체도 반환할 있습니다. 이를 통해 여러 데이터를 묶어서 한번에 반환할 있어 편리합니다.

 

1) 구조체 정의 반환 예제

struct Point {
    int x;
    int y;
};

struct Point getPoint() {
    struct Point p = {10, 20};
    return p;
}

 

사용 예시:

struct Point p1 = getPoint();
printf("%d %d", p1.x, p1.y); // 출력: 10 20

 

7. 구조체 포인터 반환

struct Point* createPoint() {
    struct Point* p = malloc(sizeof(struct Point));
    p->x = 5;
    p->y = 7;
    return p;
}

 

사용 예시:

struct Point* p = createPoint();
printf("%d %d", p->x, p->y);
free(p);

malloc 사용했을 경우에는 free() 메모리를 해제해주어야 합니다.

 

8. 연습문제 아이디어

  1. 함수로 직사각형 넓이 구하기
  2. 구조체를 이용한 사각형 정보 반환 (가로, 세로, 넓이 포함)
  3. 사이 거리 계산 함수 작성 (구조체 입력 & 반환)
  4. 문자열을 받아서 길이를 반환하는 함수 만들기

 

9. 마무리

함수를 활용하면 반복 코드를 줄이고, 모듈화를 통해 프로그램 구조를 깔끔하게 유지할 있습니다. 또한 구조체를 반환하거나 포인터로 제어하는 방식까지 익히면 복잡한 데이터도 효과적으로 다룰 있습니다.

 

반응형