C语言 错误:没有以前的原型函数.为什么我得到这个错误?

tquggr8v  于 9个月前  发布在  其他
关注(0)|答案(3)|浏览(100)

//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


我不明白为什么在屏幕上看不到我的原型。
任何建议/提示都很感激!

zbwhf8kr

zbwhf8kr1#

ISO/IEC 9899:TC2 -6.2.1.2:

函数原型是函数的声明,它声明了其参数的类型。
函数声明中的空参数列表表示参数的数量和类型未知。必须使用void关键字显式指示函数不接受参数。否则,函数声明不算作有效的原型。

void screen_init(void);

字符串

2mbi3lxu

2mbi3lxu2#

几分钟前我遇到了类似的错误。在我在头文件中添加了relatived函数声明后,错误就消失了。
另外,有些人说取消编译选项'-Wmissing-prototypes'应该可以,但我没有试过。祝你好运。

o4hqfura

o4hqfura3#

我今天就遇到了这个问题。
我定义了一个函数,

void func(void) {
}

int main(void) {
    func();
}

字符串
这将给予我警告。我不得不在文件的开头添加原型来消除警告。

void func(void);

void func(void) {
}

int main(void) {
    func();
}

相关问题