728x90
반응형
C언어에서 함수(Function)는 반복되는 코드나 특정 기능을 묶어서 간결하게 만들 수 있는 중요한 문법입니다. 이번 글에서는 함수 정의 및 호출 방법, 반환값 활용, 구조체를 반환하는 함수 작성법까지 단계별로 정리해 보았습니다.
1. 함수란?
함수는 특정 용도의 코드를 하나로 묶어놓은 것입니다. 한 번 작성한 함수는 여러 번 재사용할 수 있으며, 코드의 가독성과 유지보수성이 향상됩니다.
1) 함수의 기본 구조
반환값자료형 함수이름(매개변수) {
실행할 코드;
return 반환값;
}
2. 함수 실행 순서
int main() {
hello(); // 함수 호출
return 0;
}
void hello() {
printf("Hello world!");
}
3. 실행 순서
- main() 함수 실행
- hello() 함수 호출
- hello() 함수의 printf 실행
- "Hello world!" 출력
- hello() 종료
- 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. 연습문제 아이디어
- 함수로 직사각형 넓이 구하기
- 구조체를 이용한 사각형 정보 반환 (가로, 세로, 넓이 포함)
- 두 점 사이 거리 계산 함수 작성 (구조체 입력 & 반환)
- 문자열을 받아서 길이를 반환하는 함수 만들기
9. 마무리
함수를 활용하면 반복 코드를 줄이고, 모듈화를 통해 프로그램 구조를 깔끔하게 유지할 수 있습니다. 또한 구조체를 반환하거나 포인터로 제어하는 방식까지 익히면 복잡한 데이터도 효과적으로 다룰 수 있습니다.
반응형
'1인칭 학습 시점_웹개발 > C언어' 카테고리의 다른 글
[C언어] C언어 파일 입출력과 전역 변수의 이해 (0) | 2024.05.21 |
---|---|
[C언어] C언어 고급 문법 정리: 문자열, 구조체, 열거형까지! (0) | 2024.05.17 |
[C언어] C언어 중첩 반복문, 포인터, 배열, 메모리 할당 정리 (0) | 2024.05.16 |
[C언어] C언어 기초 - 분기문과 반복문 완벽 정리 (0) | 2024.05.14 |
[C언어] C언어 기초 - 조건문과 연산자 정리 (0) | 2024.05.13 |