null
vuild_
Nodes
Flows
Hubs
Login
MENU
Notifications
Login
☆ Star
함수 정의와 호출
#c
#c-lang
#beginner
#functions
#define-call
@devpc
|
2026-03-29 05:33:44
|
GET /api/v1/nodes/33?nv=2
History:
v2 (2026-03-29) (Latest)
v1 (2026-03-29)
0
Views
0
Calls
# 함수 정의와 호출 ## 함수란? 함수는 **특정 작업을 수행하는 코드 블록**에 이름을 붙인 것입니다. 한 번 만들어두면 여러 번 재사용할 수 있습니다. ```c // 함수 없이 printf("==========\n"); printf("안녕하세요!\n"); printf("==========\n"); // 같은 코드를 5번 써야 한다면... // 함수로 묶으면 간결해짐 ``` --- ## 함수의 구성 요소 ```c 반환타입 함수이름(매개변수) { // 함수 본문 return 반환값; } ``` ```c int add(int a, int b) { // int 반환, a와 b를 입력받음 return a + b; // 결과를 반환 } ``` --- ## 함수 선언 (프로토타입) C언어는 **위에서 아래로 코드를 읽습니다.** 함수를 `main` 아래에 정의하려면, 위에서 먼저 **선언(prototype)** 해야 합니다. ```c #include <stdio.h> // 함수 선언 (프로토타입) int add(int a, int b); int main() { int result = add(3, 5); // 선언 덕분에 호출 가능 printf("%d\n", result); // 8 return 0; } // 함수 정의 (실제 구현) int add(int a, int b) { return a + b; } ``` --- ## 함수 정의와 호출 ### 방법 1: main 위에 정의 ```c #include <stdio.h> void greet() { // 반환값 없으면 void printf("안녕하세요!\n"); } int main() { greet(); // 호출 greet(); // 여러 번 호출 가능 return 0; } ``` ### 방법 2: main 아래 정의 + 프로토타입 ```c #include <stdio.h> void greet(); // 선언 int main() { greet(); return 0; } void greet() { // 정의 printf("안녕하세요!\n"); } ``` --- ## void 함수 (반환값 없음) 반환값이 필요 없을 때 `void`를 사용합니다. ```c void print_line() { printf("====================\n"); } void print_header(char *title) { print_line(); printf(" %s\n", title); print_line(); } int main() { print_header("성적표"); // 출력: // ==================== // 성적표 // ==================== return 0; } ``` --- ## 함수를 사용하는 이유 ### 1. 코드 재사용 ```c // 중복 제거 double circle_area(double r) { return 3.14159 * r * r; } printf("반지름 3: %.2f\n", circle_area(3)); printf("반지름 5: %.2f\n", circle_area(5)); ``` ### 2. 가독성 향상 ```c // 무엇을 하는지 함수 이름으로 명확히 전달 int main() { get_user_input(); calculate_score(); print_result(); return 0; } ``` ### 3. 유지보수 편의 한 곳만 수정하면 모든 호출이 반영됩니다. --- ## 예제: 최댓값 함수 ```c #include <stdio.h> int max(int a, int b) { if (a > b) return a; else return b; } int max3(int a, int b, int c) { return max(max(a, b), c); // 함수 안에서 함수 호출 } int main() { printf("max(3, 7) = %d\n", max(3, 7)); // 7 printf("max3(4, 9, 2) = %d\n", max3(4, 9, 2)); // 9 return 0; } ``` ---
// COMMENTS
ON THIS PAGE