我将system("pause")
与stdio.h
一起使用,它的运行没有错误。当我查看stdio函数时,system()
位于stdlib中。它是如何工作的,这是代码?
#include <stdio.h>
int main() {
printf("Hello World\n" );
system("pause");
return 0;
}
答案 0 :(得分:11)
答案是它是一个隐含的声明。如果编译器没有看到函数的原型,则假定它被声明为:
int system();
如果您在编译器上调高警告级别,您可能会看到这会导致警告。隐式声明通常是不受欢迎的,但在这种情况下,这就是为什么它可以工作而不会导致任何错误。
答案 1 :(得分:0)
根据联机帮助页,它位于stdlib.h
答案 2 :(得分:0)
#include
只带有函数声明(prototype),函数由库提供,包含在链接阶段。
即使你没有#include
它,只要编译时编译器假定的定义与携带它的库中的定义匹配,就没有错误,它将起作用。
答案 3 :(得分:0)
从标准4.10.4.5系统函数在stdlib.h中:
#include <stdlib.h>
int system(const char *string);