여기서 우리는 C에서 함수 프로토타입을 사용해야 하는 이유를 볼 것입니다. 함수 프로토타입은 컴파일러에게 인수의 수와 함수 매개변수의 필수 데이터 유형에 대해 알려주고 함수의 반환 유형에 대해서도 알려주는 데 사용됩니다. 이 정보를 통해 컴파일러는 함수 서명을 호출하기 전에 교차 확인합니다. 함수 프로토타입이 언급되지 않은 경우 프로그램이 일부 경고와 함께 컴파일되고 때때로 이상한 출력이 생성될 수 있습니다.
어떤 함수가 어딘가에서 호출되었지만 그 본문이 아직 정의되지 않은 경우, 즉 현재 행 다음에 정의되면 문제가 발생할 수 있습니다. 컴파일러는 함수와 서명이 무엇인지 찾지 못합니다. 이 경우 프로토타입을 작동해야 합니다. 그 전에 함수가 정의되어 있으면 프로토타입이 필요하지 않습니다.
예시 코드
#include<stdio.h> main() { function(50); } void function(int x) { printf("The value of x is: %d", x); }
출력
The value of x is: 50
이것은 출력을 보여주지만 아래와 같은 경고를 보여주고 있습니다:
[Warning] conflicting types for 'function' [Note] previous implicit declaration of 'function' was here
이제 함수 프로토타입을 사용하여 문제 없이 실행되고 있습니다.
예시 코드
#include<stdio.h> void function(int); //prototype main() { function(50); } void function(int x) { printf("The value of x is: %d", x); }
출력
The value of x is: 50