// 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でプロトタイプが表示されない理由がわかりません。
どんな提案/ヒントも大歓迎です!
ISO/IEC 9899:TC2-6.2.1.2:
関数プロトタイプは、そのパラメーターの型を宣言する関数の宣言です。
関数宣言内の空の引数リストは、パラメーターの数とタイプが不明であることを示します。 void
キーワードを使用して、関数が引数を取らないことを明示的に示す必要があります。それ以外の場合、関数宣言は有効なプロトタイプとしてカウントされません。
void screen_init(void);
私は数分前にこのようなエラーに遭遇しました。相対ファイル宣言をheadファイルに追加した後、エラーは消えました。
また、コンパイルオプション「-Wmissing-prototypes」をキャンセルしても機能するはずだと言う人もいましたが、私はそれを試していませんでした。幸運を。
今日、この問題が発生しました。
内部で使用したばかりの関数を定義しました
void func(void) {
}
int main(void) {
func();
}
これは私にその警告を与えます。警告を取り除くために、ファイルの先頭にプロトタイプを追加する必要がありました。
void func(void);
void func(void) {
}
int main(void) {
func();
}