【发布时间】:2023-03-10 11:09:02
【问题描述】:
我正在尝试制作一个简单地搜索其根文件夹中的任何文件的测试程序:
#include <stdio.h>
#include <dir.h>
#include <dos.h>
struct ffblk ffblk;
int main(){
int result = findfirst("*.*", &ffblk,FA_ARCH);
return 0;
}
但是当代码编译时,ffblkstruct 声明返回错误:
ffblk 的存储大小未知
findfirst() 函数返回:
警告:函数“findfirst”的隐式声明[-Wimplicit-function-declaration]
as seen in this image,即使 findfirst 和 ffblk 都是 dir.h 的成员,它已经包含在内。我正在使用Visual Studio 并使用GCC 进行编译。有人知道代码或头文件有什么问题吗?
【问题讨论】:
-
问:您是否考虑过尝试警告告诉您的操作?
<dos.h> is obsolete: consider using <direct.h> instead.和<dir.h> is obsolete, consider using <io.h> instead.。建议:1)尝试替换“io.h”和“direct.h”,2)考虑使用struct ffblk f;。 -
是的。 findfirst() 仍然被认为是隐式声明的,并且结构的存储大小仍然未知,唯一改变的是名称。
-
你想要
_findfirst。 -
你想看看你是否可以使用本世纪的标题:(
标签: c struct compiler-errors findfirst