C中函数'getChar'的隐式声明

时间:2012-02-02 03:29:44

标签: c compiler-construction compiler-errors

当我尝试用C语言编译程序时,有些错误。

myfunctions.c:27:2: warning: implicit declaration of function ‘getChar’ [-Wimplicit-function-declaration]

这是第27行:

while(myChar = getChar() && myChar != '')

我在标题中调用它:

#include <stdio.h>
#include <unistd.h>

2 个答案:

答案 0 :(得分:10)

拼写为getchar,而不是getChar。 C区分大小写,几乎所有标准C函数的名称都是小写的。

至于为什么它不存在时“隐式声明”...在旧版本的C中,如果编译器不知道函数名,则假定它是一个返回{{1的函数的函数}}。这几乎就像你说int一样。我听说C99不允许这样做,但大多数编译器都不会坚持,除非你告诉他们。

答案 1 :(得分:0)

我不知道为什么,但是GCC编译器(win平台)知道getch()。但是,如果您打开-pedantic编译,则会出现此警告。

解决方案:使用getchar(),一切正常。