programing

오류: 함수에 대한 이전 프로토타입이 없습니다.이 오류가 발생하는 이유는 무엇입니까?

powerit 2023. 8. 26. 12:26
반응형

오류: 함수에 대한 이전 프로토타입이 없습니다.이 오류가 발생하는 이유는 무엇입니까?

스크린.

#ifndef screen_h
#define screen_h

#define MAC  1
#define WIN  2
#define LNX  3

#ifdef PLATFORM 
# undef PLATFORM 
#endif

#define PLATFORM MAC

void screen_init();

#endif

screen.c

#include <string.h>
#include <stdlib.h>

#include "screen.h"

#if PLATFORM == MAC

#include <curses.h> 

void screen_init(){
    erase();
}

#endif

왜 화면에 내 프로토타입이 표시되지 않는지 이해할 수 없습니다.

제안/힌트를 보내주시면 감사하겠습니다!

ISO/IEC 9899:TC2 - 6.2.1.2:
함수 프로토타입은 매개 변수의 유형을 선언하는 함수의 선언입니다.

함수 선언의 빈 인수 목록은 매개 변수의 수와 유형을 알 수 없음을 나타냅니다.다음을 사용하여 함수가 인수를 사용하지 않음을 명시적으로 표시해야 합니다.void키워드그렇지 않으면 함수 선언이 유효한 프로토타입으로 계산되지 않습니다.

void screen_init(void);

저는 몇 분 전에 이와 유사한 오류를 만났습니다.헤드 파일에 관련 함수 선언을 추가한 후 오류가 사라졌습니다.
또한 컴파일 옵션 '-Wmissing-prototype'을 취소하는 것이 효과가 있을 것이라는 의견도 있었지만, 저는 그런 시도를 하지 않았습니다.행운을 빌어요.

저는 오늘 이 문제를 겪었습니다.

내부적으로 방금 사용된 함수를 정의했습니다.

void func(void) {
}

int main(void) {
    func();
}

이것은 저에게 그 경고를 줄 것입니다.저는 경고를 없애기 위해 파일의 시작 부분에 프로토타입을 추가해야 했습니다.

void func(void);

void func(void) {
}

int main(void) {
    func();
}

언급URL : https://stackoverflow.com/questions/9541768/error-no-previous-prototype-for-function-why-am-i-getting-this-error

반응형