Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C에서 선언하기 전에 함수가 호출되면 어떻게 됩니까?

<시간/>

일부 함수 프로토타입을 사용하지 않고 함수 본문이 해당 함수의 호출 문 뒤에 있는 섹션에 선언되어 있는 경우. 이러한 경우 컴파일러는 기본 반환 유형이 정수라고 생각합니다. 그러나 함수가 다른 유형의 값을 반환하면 오류가 반환됩니다. 반환 유형이 정수인 경우에도 제대로 작동하며 때로는 경고가 발생할 수 있습니다.

예시 코드

#include<stdio.h>
main() {
   printf("The returned value: %d\n", function);
}
char function() {
   return 'T'; //return T as character
}

출력

[Error] conflicting types for 'function'
[Note] previous implicit declaration of 'function' was here

이제 반환 유형이 정수이면 작동합니다.

예시 코드

#include<stdio.h>
main() {
   printf("The returned value: %d\n", function());
}
int function() {
   return 86; //return an integer value
}

출력

The returned value: 86