是否有任何可能的方法来编写C程序而不包括stdio.h
作为头文件。有人建议可以通过声明extern int scanf(char* format, ...);
#include <stdio.h> //I want this same code to work without including this line
int main ()
{
char str [80];
scanf ("%s",str);
return 0;
}
答案 0 :(得分:10)
您可以使用:
声明scanf
功能
extern int scanf(const char *format, ...);
extern关键字是可选的,但我想将其包含在内,以提醒函数是在其他地方定义的。
您的示例将如下所示:
extern int scanf(const char *format, ...);
int main ()
{
char str [80];
scanf ("%s",str);
return 0;
}
答案 1 :(得分:1)
在C-89中,该代码将在没有#include的情况下编译,因为函数原型是可选的。
说到哪个,它属于“非常糟糕的事情”列表 - scanf
可能是一个宏,它可能有一个或多个必需的参数,......
所以你可以做到,但这就像晚上开车时没有任何灯光。即使你认为你知道这条路,你也有可能崩溃。