728x90
반응형
□ C에서 함수를 작성하였는데 warning이 발생하거나 실행이 안되는 경우가 있습니다.
main() {
int fir, sec, res;
fir = 5;
sec = 3;
res = sum(fir, sec);
printf("%d", res);
}
int sum(int a, int b) {
return a + b;
}
▷ warning C4013: 'sum'이(가) 정의되지 않았습니다. extern은 int형을 반환하는 것으로 간주합니다.
□ 이런 경우 정의한 함수를 main 위로 올려주거나, main 위에 함수를 선언해주면 됩니다.
int sum(int a, int b) {
return a + b;
}
main() {
int fir, sec, res;
fir = 5;
sec = 3;
res = sum(fir, sec);
printf("%d", res);
getchar();
}
이런식으로 main 위로 올려 정의를 하면 컴파일러가 미리 함수의 정의를 알고 있기에 프로토타입이 필요하지 않습니다.
int sum(int a, int b); //프로토타입
main() {
int fir, sec, res;
fir = 5;
sec = 3;
res = sum(fir, sec);
printf("%d", res);
getchar();
}
int sum(int a, int b) {
return a + b;
}
main 위에 함수를 선언해줍니다. 이렇게 선언한 것을 함수의 프로토타입이라고 합니다.
main 다음에 함수가 있을 경우 컴파일러에게 미리 함수가 있는것을 알려주어야 정상적으로 작동할 수 있습니다.
반응형
'Programming > C Language' 카테고리의 다른 글
[C] 싱글 링크드 리스트(Single Linked List) (0) | 2019.06.18 |
---|---|
[C] 반복문에 대해서 알아보자! (0) | 2019.06.15 |
[C]비트연산자란 무엇인가? (0) | 2019.06.15 |
[C] Enum(열거형)에 대해 알아보자 (0) | 2019.06.15 |
[C] 함수 포인터 (0) | 2019.06.13 |