【发布时间】:2015-04-13 18:12:46
【问题描述】:
我有一个简单的程序:
#include <stdio.h>
#include <stdlib.h>
int main(void){
printf("Hello world!\n");
getch();
return 0;
}
即使我收到警告
implicit declaration of function 'getch'
程序运行良好。我错过了什么吗?如果我这样做了,为什么程序可以正常工作?
【问题讨论】:
-
getch()或getchar()? -
非标准的
getch()在conio.h(也是非标准的)中,你没有包括在内。它“有效”是因为返回类型与编译器假定的隐式返回类型兼容:int。简而言之,你是(不)幸运的。考虑改用getchar()。 -
感谢@WhozCraig 的评论(如果这是我很乐意接受的答案)
-
我为投反对票而挠头。这个问题有什么问题吗?请帮我提高downvoter。
-
问题投票的工具提示包括评论“...显示研究成果”,也许就是这样(不是我)。 MSVC 编译器警告更有帮助:“警告 C4013:'getch' 未定义;假设 extern 返回 int”
标签: c