c-C90编译器抱怨"没有原型函数"警告



我在includes.h 文件中声明了一个函数hello()

hello()函数在文件源.c 中定义

hello()函数在主.c文件中被调用

包含.h包含以下代码

/*
* includes.h
*
*  Created on: Jul 26, 2018
*      Author: salim
*/
#ifndef T_HEADER_H_
#define T_HEADER_H_
#include <stdio.h>
int hello();

#endif /* T_HEADER_H_ */

source.c包含以下代码

/*
* source.c
*
*  Created on: Jul 26, 2018
*      Author: salim
*/
#include <stdio.h>
#include "includes.h"
int hello()
{
printf("Hello, World!");
return 0;
}

main.c包含以下代码

/*
* main.c
*
*  Created on: Jul 26, 2018
*      Author: salim
*/
#include <stdio.h>
#include "includes.h"
int main()
{
hello();
return 0;
}

编译通过,但编译器生成一条信息消息,称为main.c(11) : C0200 (I) No prototype function

我错过了什么来摆脱信息/警告消息?我知道变通办法可能是显示警告/信息信息,但我不想走那条路。

从形式上讲,它在调用时是一个"无原型函数"。int hello()不是原型。它是一个"非原型"类型的函数声明。它是一个K&R样式声明。

该函数的原型声明看起来像

int hello(void);

这是否是编译器试图告诉你的(或者存在其他问题(是另一个问题。

相关内容

  • 没有找到相关文章

最新更新