【发布时间】:2013-04-09 10:15:03
【问题描述】:
我开始使用 Visual Studio 2010 (c++) 编写 C 代码。
#include <stdio.h>
#include <stdlib.h>
int main(){
printf("test");
getch();
return 0;
}
此代码有效,即使没有添加 conio.h 库并且程序在此处暂停,但是 getch();带有下划线并且它说 错误标识符 getch();未定义。
这怎么可能?
【问题讨论】:
-
只是猜测,但也许 stdio.h 会引入 conio.h 的(某些部分)?从技术上讲,只要代码不使用 C++ 特性,您就可以使用函数而不声明它们(但您应该启用警告以避免这种情况)。
-
我打开stdio和stdlib,crtl+f搜索了getch(),但是只有原来的getchar()...
-
我敢打赌这两个标题都包含其他内容。
-
也许它是 printf() 中的一个特殊函数,在没有 stdio.h 的情况下使用 gcc 编译时可以工作。甚至 getch() 也可以在没有任何标题的情况下与 gcc 一起使用
-
"... 不添加 conio.h 库 ..."
conio.h不是 一个库,而是一个提供 (除了其他东西)原型到库中的函数。编译期间不使用库,而是编译后,即链接期间。
标签: c visual-studio-2010