|  |
| |
| BrokenPipe |
프로토타입자체를 이해못하신거같아서 설명드릴게요
수학에 비유하면 프로토타입은
y=x+5
이런 미지수가 포함된 식이라고 보시면됩니다.
이 미지수는 함수에 넘어가는 인자고요.
y=x+5라는 함수가 있다면
x에 3을넣어 y라는 리턴값을 받게 되는것이죠
#include <stdio.h>
int addfive(int x){
return x+5;
}
int main(){
printf(addfive(3)); // 8
return 0;
} |
2011/12/24 |
|
| BrokenPipe |
띄어쓰기가 안되서 보기 불편하시면 메인페이지에 있는 댓글에서 보시면됩니다 |
2011/12/24 |
|
| twt525 |
잘이해가 안되네요 ㅠㅠ |
2011/12/24 |
|
| BrokenPipe |
중학교 3학년이시라니 다시 설명드리면
f(x) = x + 5
라는 일차방정식이 있을때
f(x)는 함수에서 return 되는 값
x + 5는 함수가 실행하는 연산
int f(x){
return x+5;
}
f(x) 에서 x 에 5를 집어넣게 되면
결과값으로 10 이나오게 되고,
10을 집어넣게 되면 15가 나오게됩니다.
더 나가서 이차방정식으로 설명드리자면
f(x)=x^2+5x+10
이란 이차방정식이 있을때
int f(x){
return x*x+5*x+10;
}
이렇게 하시면 5를 집어넣었을때 f(x)가 가지는 값은 55가 됩니다.
이를 응용해서
#include <stdio.h>
int f(int x){ // 위에선 안썼지만 인자에도 데이터형을 써주셔야합니다.
return x*x+5*x+10; // y=x^2 + 5x + 10
}
int main(){
int y=f(5);
printf("%d", y);
return 0;
}
이 소스 가지고 열심히 연구하시고도 정 안되시면 쪽지 보내주세요 |
2011/12/25 |
|
| BrokenPipe |
p.s. 위에 리턴되는 값이라고 써놨는데 결과값이랑 같습니다 |
2011/12/25 |
|
| prosthetics |
함수는 선언과 정의로 나뉩니다.
C언어에서 함수의 선언은 프로토 타입이라고하며, 정의는 본체라고 합니다.
C언어로 짠 프로그램은 코드 위에서부터 아래로 쭉 실행됩니다.
이것을 절차지향 언어라고 하지요.
절차지향 언어의 경우 위에서 선언하지 않은 변수, 함수는 아래에서 사용될 수 없습니다.
브로큰 파이 님의 코드를 예로 들겠습니다.
<1 : 오류가 있는 코드>
/*
아래와 같이 위에서 선언하지 않은 함수 f()를 사용하게 되면 오류가 발생합니다.
*/
#include <stdio.h>
int main()
{
int y=f(5);
printf("%d", y);
return 0;
}
int f(int x)
{
return x*x+5*x+10; // y=x^2 + 5x + 10
}
<2 : 오류를 수정한 코드>
/*
오류를 수정하기 위해 f()를 위에서 정의해준 코드입니다.
*/
#include <stdio.h>
int f(int x)
{
return x*x+5*x+10; // y=x^2 + 5x + 10
}
int main()
{
int y=f(5);
printf("%d", y);
return 0;
}
<3 : 프로토 타입 사용>
/*
프로토 타입을 위에서 선언해 주었습니다.
이 덕분에 main함수를 가장 위에서 볼 수 있습니다.
여기서는 함수가 한개이지만 함수가 많은 프로그램에서 프로토타입을 사용하여 코딩할 경우
위에서 모든 함수를 찾아볼 수 있어 가독성이 높아집니다.
프로토 타입은 이러한 이유 때문에 사용하는 것입니다.
*/
#include <stdio.h>
int f(int); //프로토 타입
int main()
{
int y=f(5);
printf("%d", y);
return 0;
}
int f(int x)
{
return x*x+5*x+10; // y=x^2 + 5x + 10
} |
2011/12/25 |
|
| BrokenPipe |
prosthetics//
아 그러고보니 전 그냥 함수에대해서만 설명드린거군요 ㅋㅋ
부족한점 보충 감사합니다 |
2011/12/25 |
|