Подтвердить что ты не робот

Ошибка: нет предыдущего прототипа для функции. Почему я получаю эту ошибку?

//screen.h

#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

Я не понимаю, почему он не видит мой прототип в screen.h

Любые предложения/подсказки приветствуются!

4b9b3361

Ответ 1

ISO/IEC 9899: TC2 - 6.2.1.2:
Прототип функции - это объявление функции, объявляющей типы ее параметров.

Пустой список аргументов в объявлении функции указывает, что количество и тип параметров неизвестны. Вы должны явно указать, что функция не принимает аргументов с помощью ключевого слова void. В противном случае объявление вашей функции не считается допустимым прототипом.

void screen_init(void);

Ответ 2

Я встретил эту подобную ошибку минут назад. После того, как я добавил объявление релятивированной функции в файл head, ошибка исчезла.
Кроме того, некоторые говорили, что отмена опции компиляции '-Wmissing-prototypes' должна работать, но я этого не пробовал. Удачи.