λ‹€λ₯Έ ν•¨μˆ˜μ˜ λ³€μˆ˜/λ°°μ—΄μ˜ 값을 λ°”κΎΈλŠ” ν•¨μˆ˜λŠ” λ°˜λ“œμ‹œ κ·Έ (λ³€μˆ˜/λ°°μ—΄)νƒ€μž…μ„ κ°€λ¦¬ν‚€λŠ” 포인터λ₯Ό 인자둜 κ°€μ Έμ•Ό ν•œλ‹€.

        β€» 포인터가 μ•„λ‹Œ μΈμžλŠ” λ‹€λ₯Έ ν•¨μˆ˜λ‘œ λΆ€ν„° 값을 전달 받을 수만 μžˆλ‹€.

| ν•¨μˆ˜μ˜ μ›ν˜• (prototype) |

- μ‚¬μš© 이유 : 보톡 ν•¨μˆ˜ μ •μ˜λŠ” main ν•¨μˆ˜ 뒀에 λ„£λŠ”λ°,

  ν•¨μˆ˜ μ‚¬μš© μ‹œ μΈμžμ— λΆ€μ μ ˆν•œ νƒ€μž…μ˜ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜, 인자 λˆ„λ½ 등이 λ°œμƒ μ‹œ 였λ₯˜λ₯Ό μ°Ύμ•„λ‚΄κΈ° μ–΄λ ΅λ‹€.

/* ν•¨μˆ˜μ˜ μ›ν˜• */
#include <stdio.h>

int swap(int *a, int *b);	// 이 것이 λ°”λ‘œ ν•¨μˆ˜μ˜ μ›ν˜•

int main() {
  int i, j;
  i = 3;
  j = 5;
  printf("SWAP 이전 : i : %d, j : %d \n", i, j);
  swap(&i, &j);
  printf("SWAP 이후 : i : %d, j : %d \n", i, j);
  return 0;
}

int swap(int *a, int *b) {
  int temp = *a;
  *a = *b;
  *b = temp;
  return 0;
}

int swap(int *a, int *b);  ←ν•¨μˆ˜μ˜ μ›ν˜•

              β””> ν•¨μˆ˜ μ›ν˜•μ˜ 의미 : μ†ŒμŠ€μ½”λ“œμ—μ„œ μ‚¬μš©λ˜λŠ” 이 ν•¨μˆ˜μ˜ μΈμžμ— λŒ€ν•œ 정보λ₯Ό 제곡 함

γ€€γ€€γ€€γ€€β˜ž ν•¨μˆ˜μ˜ μ›ν˜•μ„ λ„£μœΌλ©΄ ν•¨μˆ˜ 인자 μ‚¬μš©μ— λ¬Έμ œκ°€ μžˆμ„ μ‹œ, μ •ν™•νžˆ μ•Œλ €μ€Œ

      γ€€γ€€γ€€ex)

      γ€€γ€€γ€€      error C2198: 'swap' : ν˜ΈμΆœμ— 맀개 λ³€μˆ˜κ°€ λ„ˆλ¬΄ μ μŠ΅λ‹ˆλ‹€.
      γ€€γ€€γ€€      warning C4047: 'ν•¨μˆ˜' : 'int *'의 κ°„μ ‘ μ°Έμ‘° μˆ˜μ€€μ΄ 'int'κ³Ό(와) λ‹€λ¦…λ‹ˆλ‹€.
      γ€€γ€€γ€€      warning C4024: 'swap' : ν˜•식 λ° μ‹€μ œ λ§€κ°œ λ³€μˆ˜ 2의 ν˜•식이 μ„œλ‘œ λ‹€λ¦…λ‹ˆλ‹€.

 

λ”°λΌμ„œ, β˜…ν•¨μˆ˜μ˜ μ›ν˜•β˜…μ„ λ°˜λ“œμ‹œ μ§‘μ–΄ λ„£μž.

λ°˜μ‘ν˜•

+ Recent posts