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

C/C++에서 함수 프로토타입의 목적은 무엇입니까?

<시간/>

여기서 우리는 C 또는 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