在UNIX编程环境的第182页上,代码efopen如下所示:
FILE *efopen(file, mode) /* fopen file, die if can't */
char *file, *mode;
{
FILE *fp, *fopen();
extern char *progname;
if ((fp = fopen(file, mode)) != NULL)
return fp;
fprintf(stderr, "%s: can't open file %s mode %s\n",
progname, file, mode);
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
这条线FILE *fp, *fopen();做什么?
我的阅读是它声明了一个变量fp,它是一个指向a FILE的函数和一个fopen返回指针的函数FILE.
如果是这样的话:为什么fopen在函数体内声明了前向?为什么我们不宣布其论点?