stdio或stdlib中的system()?

use*_*619 0 c std stdio

我使用了system("pause")stdio.h,它没有错误地工作.当我查看stdio函数时,system()是在stdlib中.它是如何工作的,这是代码?

#include <stdio.h>

int main() {
    printf("Hello World\n" );
    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Fat*_*ror 11

答案是它是一个隐含的声明.如果编译器没有看到函数的原型,它会认为它被声明为:

int system();
Run Code Online (Sandbox Code Playgroud)

如果您在编译器上调高警告级别,您可能会看到这会导致警告.隐式声明通常是不受欢迎的,但在这种情况下,这就是为什么它可以工作而不会导致任何错误.