tom*_*ies 2 c visual-studio-2010
我开始使用Visual Studio 2010(c ++)来编写C代码.
#include <stdio.h>
#include <stdlib.h>
int main(){
printf("test");
getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这段代码工作,即使没有添加conio.h库,程序也会在那里暂停getch(); 加下划线,它说,错误标识符getch(); 未定义.
怎么可能?
Fat*_*ror 10
C语言具有函数的"隐式声明"概念.如果您不提供原型,编译器将假定该函数声明为:
int getch();
Run Code Online (Sandbox Code Playgroud)
这意味着它是一个返回int的函数,它不指定有关其参数的信息.严格来说,这不是错误,但如果您的警告级别设置得足够高,许多编译器会发出警告.此行为在C99之后被删除,您通常应该避免依赖它.
由于库仍提供该getch()功能,因此在链接时解析其符号没有问题.结果,并且由于getch()实际上确实返回的事实int,一切都成功了.
| 归档时间: |
|
| 查看次数: |
9854 次 |
| 最近记录: |