λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Programming/C language

11 function (ν•¨μˆ˜)

by Dowon Kang 2024. 1. 23.

C μ–Έμ–΄μ—μ„œ ν•¨μˆ˜λŠ” μ½”λ“œλ₯Ό κ΅¬μ„±ν•˜λŠ” κΈ°λ³Έμ μΈ λΈ”둝 μ€‘ ν•˜λ‚˜λ‘œ, νŠΉμ • μž‘업을 μˆ˜ν–‰ν•˜λŠ” μ½”λ“œ λ¬ΆμŒμž…λ‹ˆλ‹€. ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ μ½”λ“œμ˜ λͺ¨λ“ˆν™”와 μž¬μ‚¬μš©μ΄ κ°€λŠ₯해지며, ν”„λ‘œκ·Έλž¨μ„ λ…Όλ¦¬μ μ΄κ³  μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ λ‹¨μœ„λ‘œ λ‚˜λˆŒ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. ν•¨μˆ˜λŠ” νŠΉμ •ν•œ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κ³  κ·Έ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

 

  • return_type: ν•¨μˆ˜κ°€ λ°˜ν™˜ν•˜λŠ” κ°’μ˜ μžλ£Œν˜•μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. λ§Œμ•½ ν•¨μˆ˜κ°€ μ•„λ¬΄λŸ° κ°’을 λ°˜ν™˜ν•˜μ§€ μ•Šμ„ κ²½μš° voidλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
  • function_name: ν•¨μˆ˜μ˜ 이름을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ 이 이름을 μ‚¬μš©ν•˜μ—¬ ν˜ΈμΆœν•©λ‹ˆλ‹€.
  • parameters: ν•¨μˆ˜μ— μ „λ‹¬λ˜λŠ” λ§€κ°œλ³€μˆ˜λ“€μ˜ λͺ©λ‘μž…λ‹ˆλ‹€. ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ 이 λ§€κ°œλ³€μˆ˜λ“€μ„ μ „λ‹¬ν•˜μ—¬ ν•¨μˆ˜κ°€ μž‘μ—…μ„ μˆ˜ν–‰ν•  λ•Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • ν•¨μˆ˜ λ‚΄μš©: μ€‘κ΄„ν˜Έ {}둜 λ‘˜λŸ¬μ‹ΈμΈ λΆ€λΆ„μ—λŠ” ν•¨μˆ˜κ°€ μˆ˜ν–‰ν•  μž‘μ—…μ΄ μ •μ˜λ©λ‹ˆλ‹€. 이 λΆ€λΆ„μ—λŠ” λ³€μˆ˜ μ„ μ–Έ, 쑰건문, 반볡문 등이 λ“€μ–΄κ°ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

 

λ°˜ν™˜κ°’ (Return Value) & 전달값 (Parameters/Arguments)


λ°˜ν™˜κ°’μ€ ν•¨μˆ˜κ°€ μˆ˜ν–‰ν•œ μž‘μ—…μ˜ κ²°κ³Όλ₯Ό ν˜ΈμΆœν•œ λΆ€λΆ„μœΌλ‘œ λŒλ €μ£ΌλŠ” κ°’μž…λ‹ˆλ‹€. ν•¨μˆ˜ λ‚΄μ—μ„œ return ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€. 반면 전달값은 ν•¨μˆ˜κ°€ 호좜될 λ•Œ ν•¨μˆ˜λ‘œ μ „λ‹¬λ˜λŠ” μž…λ ₯ 값듀을 μ˜λ―Έν•©λ‹ˆλ‹€. μœ„μ˜ μ½”λ“œμ—μ„œλŠ” add(3, 4) λΆ€λΆ„μ˜ 3, 4κ°€ Arguments 그리고 add(int a, int b)의 a, bλŠ” Parametersκ°€ λ©λ‹ˆλ‹€.  

 

ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’κ³Ό μ „달값은 ν•¨μˆ˜λ₯Ό νš¨κ³Όμ μœΌλ‘œ μ‚¬μš©ν•˜κ³  μœ μ§€λ³΄μˆ˜ κ°€λŠ₯ν•œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” λ° μ€‘μš”ν•œ μ—­ν• μ„ ν•©λ‹ˆλ‹€. λ°˜ν™˜κ°’을 ν†΅ν•΄ ν•¨μˆ˜μ˜ κ²°κ³Όλ₯Ό ν™œμš©ν•˜κ³ , μ „달값을 ν†΅ν•΄ ν•¨μˆ˜μ— ν•„μš”ν•œ μ •λ³΄λ₯Ό μ „λ‹¬ν•˜μ—¬ μ›ν•˜λŠ” μž‘업을 μˆ˜ν–‰ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

 

 


 

Swap function 

C μ–Έμ–΄μ—μ„œ "swap" ν•¨μˆ˜λŠ” λ‘ λ³€μˆ˜μ˜ κ°’을 μ„œλ‘œ κ΅ν™˜ν•˜λŠ” λ° μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. μ΄ ν•¨μˆ˜λŠ” λ³΄ν†΅ λ‘ κ°œμ˜ λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μ•„μ„œ, κ·Έ κ°’듀을 μ„œλ‘œ λ°”κΎΈμ–΄μ€λ‹ˆλ‹€.

더보기

#include <stdio.h>

// swap ν•¨μˆ˜ μ •μ˜
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() {
    int x = 5;
    int y = 10;

    printf("κ΅ν™˜ μ „: x = %d, y = %d\n", x, y);

    // swap ν•¨μˆ˜ ν˜ΈμΆœν•˜μ—¬ λ³€μˆ˜μ˜ κ°’ κ΅ν™˜
    swap(&x, &y);

    printf("κ΅ν™˜ ν›„: x = %d, y = %d\n", x, y);

    return 0;
}

 

이 μ½”λ“œμ—μ„œ swap ν•¨μˆ˜λŠ” λ‘ κ°œμ˜ ν¬μΈν„°λ₯Ό λ§€κ°œλ³€μˆ˜λ‘œ λ°›μŠ΅λ‹ˆλ‹€. ν¬μΈν„°λ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” ν•¨μˆ˜ λ‚΄μ—μ„œ μ‹€μ œ λ³€μˆ˜μ˜ κ°’을 λ³€κ²½ν•˜κΈ° μœ„ν•΄μ„œμž…λ‹ˆλ‹€. ν•¨μˆ˜ λ‚΄μ—μ„œ tempλΌλŠ” μž„μ‹œ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ κ°’을 κ΅ν™˜ν•©λ‹ˆλ‹€. ν•¨μˆ˜ ν˜ΈμΆœμ—μ„œλŠ” λ³€μˆ˜μ˜ μ£Όμ†Œλ₯Ό μ „λ‹¬ν•˜κΈ° μœ„ν•΄ & μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

 

'Programming > C language' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

13 Array  (0) 2024.01.24
12 Pointer  (1) 2024.01.24
10 string (feat. random ν•¨μˆ˜)  (0) 2024.01.23
9 while & do-while (feat. break & continue)  (1) 2024.01.23
8 for loop (feat. Nested loop)  (1) 2024.01.23

λŒ“κΈ€