| ํจ์์ ์์ |
- ๊ฐ์ ์์
์ ํ๋ ์ฝ๋์ ๋ฐ๋ณต์ผ๋ก ๋ณต์กํด์ง๋ ๊ฒ์ ์ค์ผ ์ ์์
[ ํจ์์ ์ ์ ]
#include <stdio.h>
int print_hello() {
printf("Hello!! \n");
return 0;
}
int main() {
printf("ํจ์๋ฅผ ๋ถ๋ฌ๋ณด์ : ");
print_hello();
printf("๋ ๋ถ๋ฅผ๊น? ");
print_hello();
return 0;
}
- ํจ์ ์ ์ธ์์ int => ์ด ํจ์๋ int ํ์ ์ ๋ณด๋ฅผ ๋ฐํํ๋ค. ๋ ๋ป
๋ฐํ : return => ์ฌ๊ธฐ์๋ 0(๋ฉ๋ชจ๋ฆฌ์ 4๋ฐ์ดํธ ์ฐจ์งํ๋ int ํ)
- ํจ์ ์ด๋ฆ์ ์กฐ๊ฑด == ๋ณ์ ์ด๋ฆ์ ์กฐ๊ฑด
์ข์ ํจ์์ ์ด๋ฆ : ํจ์๊ฐ ๋ฌด์จ ์์
์ ํ๋์ง ๋ช
ํํ ํ๋ ๊ฒ, ๊ทธ ํจ์๊ฐ ํ๋ ์์
์ ์ค๋ช
ํด์ฃผ๋ ์ด๋ฆ์ ์ ํ๋ ๊ฒ์ด ์ข์
[ ํจ์์ ๋ชธ์ฒด(body) ]
: {} ์์ ์ฝ๋
[ ํจ์ ํธ์ถ(call) ]
ํจ์์ด๋ฆ();
โ>๋ณ์๊ฐ ์๋๋ผ ํจ์๋ผ๋ ๋ป
[ ํจ์์ ์ข
๋ฃ ]
. ํจ์๋ฅผ ํธ์ถํ๋ฉด ํ๋ก๊ทธ๋จ์ ํจ์์ ๋ด์ฉ์ ์คํํ๊ณ ์๋ ์คํ๋๋ ค๋ ๋ถ๋ถ์ผ๋ก ๋์์ ๋ค์ ๋ช
๋ น์ผ๋ก ๋์ด๊ฐ.
. ํจ์ ์ข
๋ฃ์ ๋ ๊ฐ์ง ํํ : ๋ฐํ์ด ๋์ด ์ข
๋ฃ, ํจ์์ ๋ ๋ถ๋ถ ๊น์ง ์คํํ์ฌ ์ข
๋ฃ
(๋ฐํ์ ํ์ฌ ์ข
๋ฃ๋๋ ๊ฒ์ด ์์ ํจ.)
โ
return ์ ์คํํ๋ฉด ํจ์๋ ๋ฌด์กฐ๊ฑด ์ข
๋ฃ๋์ด ํจ์๋ฅผ ํธ์ถํ์๋ ๋ถ๋ถ์ผ๋ก ๋์๊ฐ๋ค. โ
[ ๋ฐํ๊ฐ ]
ํจ์๋ฅผ ํธ์ถํ๋ฉด return๊ฐ์ ๋ฐํ(์ถ๋ ฅ) ํจ.
ex) ์๋์ ret()ํจ์์ ๋ฐํ๊ฐ : 1000
/* ๋ฐํ๊ฐ */
#include <stdio.h>
int ret() { return 1000; }
int main() {
int a = ret();
printf("ret() ํจ์์ ๋ฐํ๊ฐ : %d \n", a);
return 0;
}
โป function()์ ์ฝ๋ ์ค๊ฐ์ ์ฐ๋ ๊ฒ์ "ํจ์ function์ ๋ฐํ๊ฐ"์ ๋ปํจ.
| main ํจ์ |
- ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ์ปดํจํฐ๊ฐ main ํจ์ ๋ถํฐ ์ฐพ์(๋ชจ๋ ๊ฒฝ์ฐ๋ ์๋, ์ ์ด๋ ์์ผ๋ก ๋ง๋ค๊ฒ ๋ C ํ๋ก๊ทธ๋จ๋ค์ ๊ฒฝ์ฐ)
- ์ปดํจํฐ๋ ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ํ๋ก๊ทธ๋จ์ main ํจ์๋ฅผ ํธ์ถํจ์ผ๋ก์จ ์์ํจ.
- ๋ง์ผ main ํจ์๊ฐ ์๋ค๋ฉด ์ปดํจํฐ๋ ํ๋ก๊ทธ๋จ์ ์ด๋์ ๋ถํฐ ์คํํ ์ง ๋ชจ๋ฅด๊ฒ ๋์ด ์ค๋ฅ ์๊น
- mainํจ์์ return์ OS๊ฐ ๋ฐ๋๋ค.
โป ๋ณดํต mainํจ์๋ 0์ ๋ฆฌํดํ์ง๋ง ๋ค๋ฅธ๊ฐ์ ๋ฆฌํดํด๋ ์๊ด ์์. but ๊ทธ ๋ฆฌํด๊ฐ์ ์ ๋ณด๋ฅผ ํ์ฉํ๋ ์ผ์ด ๋๋ฌพ.
| ํจ์์ ์ธ์ |
* ๋ณ๊ฐ์ ํจ์๋ผ๋ฆฌ๋ ๋ค๋ฅธ ํจ์ ์์ ๋ณ์๋ฅผ ์ ์๋ ์ฌ์ฉํ ์๋ ์์.
- ์ธ์(argument, ํน์ ๋งค๊ฐ๋ณ์(parameter))๋ฅผ ์ด์ฉํ๋ฉด ๊ฐ๋ฅ
- ์ธ์ ์ฌ์ฉ : ํจ์ ์ ์ ์, ๊ดํธ์ ์ธ์๋ฅผ ์จ๋
๋ฐํ๊ฐ์ํ์
ํจ์์ด๋ฆ (์ธ์1์ํ์
์ธ์1์์ด๋ฆ, ์ธ์2์ํ์
์ธ์2์์ด๋ฆ...) {}
#include <stdio.h>
int slave(int master_money) {
master_money += 10000;
return master_money;
}
int main() {
int my_money = 100000;
printf("2009.12.12 ์ฌ์ฐ : $%d \n", slave(my_money));
return 0;
}
ex) ํจ์ ์ ์ ์,
int function( int a) {....} => "ํจ์๋ฅผ ํธ์ถํ๋ ์ฝ๋๋ก ๋ถํฐ ์ด๋ค ๊ฐ์ a๋ผ๋ int ํ ๋ณ์์ ์ธ์(๋งค๊ฐ๋ณ์)๋ก ๋ฐ๊ฒ ๋ค."
โ ์ธ์๊ฐ ์๋ ํจ์๋ฅผ ํธ์ถ ํ ๋ ์ธ์์ ๊ฐ์ ๊ดํธ์์ ๋ฃ์ง ์๊ฑฐ๋ ์ธ์๋ฅผ ์ ๊ฒ ๋ฃ์ผ๋ฉด ์ค๋ฅ ๋จ. ("ํจ์ ํธ์ถ์ ์ธ์๊ฐ ๋๋ฌด ์ ์ต๋๋ค.")
*์๊ฐํด๋ณด๊ธฐ ๋ค์ ํด๋ณผ ๊ฒ*