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

Sno*_*Mac 0 c compiler-construction compiler-errors

有些我在尝试用C编译程序时遇到此错误.

myfunctions.c:27:2: warning: implicit declaration of function ‘getChar’ [-Wimplicit-function-declaration]
Run Code Online (Sandbox Code Playgroud)

这是第27行:

while(myChar = getChar() && myChar != '')
Run Code Online (Sandbox Code Playgroud)

我在标题中调用它:

#include <stdio.h>
#include <unistd.h>
Run Code Online (Sandbox Code Playgroud)

cHa*_*Hao 10

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

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

  • 想象一下,如果编译器实际执行这个错误,程序会有多少错误(以及其他问题,他们忽略了标准并允许滑动). (2认同)