我有这个代码删除目录。我有header1.h,header1.c,main.c。 我得到一些错误,但一个是我更难以理解的错误是: (1)存储大小ffblk未知。 另外,我有疑问如何定义ffblk的属性,它们是ff_name和ff_attrib 这个例子来自互联网上的各种代码示例(甚至来自这里的其他代码示例),它们都执行相同的代码,只是在我的它不起作用。 我是否缺少结构的定义?或者也许我已经添加了代码,它不应该是任何代码? 你能帮我吗?我通常不用C语言编程,我正在使用Dev-Cpp。C - 错误没有定义和存储未知

那么header1.h:

#ifndef HEADER1_H_INCLUDED

#define HEADER1_H_INCLUDED

typedef struct ffblk ffblk;

#endif

header.c:

#include

#include

#include "header1.h"

struct ffblk

{

char ff_attrib[20]; //this line i added just so dont show error of unknown

char ff_name[20]; //this line i added just so dont show error of unknown

};

的main.c:

#ifndef FA_RDONLY

#define FA_RDONLY _A_RDONLY

#endif

#ifndef FA_HIDDEN

#define FA_HIDDEN _A_HIDDEN

#endif

#ifndef FA_SYSTEM

#define FA_SYSTEM _A_SYSTEM

#endif

#ifndef FA_DIREC

#define FA_DIREC _A_SUBDIR

#endif

#ifndef FA_ARCH

#define FA_ARCH _A_ARCH

#endif

# include

# include

# include

# include

# include

#include "header1.h"

typedef struct ffblk ffblk;

int BorrarArchivo(char *nombarch)

{

printf("Borrando Archivo %s \n",nombarch);

remove(nombarch);

return 0;

}

int EliminarAtributo(char *nombarch,int atributo)

{

printf("Elimina Atributo %s %d\n",nombarch,atributo);

chmod(nombarch,atributo);

return 0;

}

int BorrarArbol(void)

{

struct ffblk ffblk;

int done,err;

err=0;

done=findfirst("*.*",&ffblk,FA_RDONLY|FA_HIDDEN|FA_DIREC|FA_ARCH|FA_SYSTEM);

while (!done)

{

if (FA_HIDDEN & ffblk.ff_attrib)

EliminarAtributo(ffblk.ff_name,FA_HIDDEN);

if (FA_SYSTEM & ffblk.ff_attrib)

EliminarAtributo(ffblk.ff_name,FA_SYSTEM);

if (FA_RDONLY & ffblk.ff_attrib)

EliminarAtributo(ffblk.ff_name,FA_RDONLY);

if (FA_ARCH & ffblk.ff_attrib)

err=BorrarArchivo(ffblk.ff_name);

else if (FA_DIREC & ffblk.ff_attrib)

{

if (ffblk.ff_name[0]!='.')

{

chdir(ffblk.ff_name);

err=BorrarArbol();

chdir("..");

if (!err)

printf("Removiendo %s\n",ffblk.ff_name);

rmdir(ffblk.ff_name);

}

}

else

err=BorrarArchivo(ffblk.ff_name);

if (err)

{

printf("Error en el borrado ... !"); return err;

}

done=findnext(&ffblk);

}

return 0;

}

int main (void)

{ int err=0;

char c;

printf("Esta seguro [ Si -> S , No ->otra tecla ] =>");

c=getchar();

if (!(c=='S' || c=='s')) return 0;

err=BorrarArbol();

if (err) printf("Error en el borrado ... !");

return err;

}

编辑: 我发现的结构的定义,并将其粘贴header.h

typedef struct ffblk {

char lfn_magic[6]; /* LFN: the magic "LFN32" signature */

short lfn_handle; /* LFN: the handle used by findfirst/findnext */

unsigned short lfn_ctime; /* LFN: file creation time */

unsigned short lfn_cdate; /* LFN: file creation date */

unsigned short lfn_atime; /* LFN: file last access time (usually 0) */

unsigned short lfn_adate; /* LFN: file last access date */

char ff_reserved[5]; /* used to hold the state of the search */

unsigned char ff_attrib; /* actual attributes of the file found */

unsigned short ff_ftime; /* hours:5, minutes:6, (seconds/2):5 */

unsigned short ff_fdate; /* (year-1980):7, month:4, day:5 */

unsigned long ff_fsize; /* size of file */

char ff_name[260]; /* name of file as ASCIIZ string */

}ffblk;

现在它显示错误:

C:\Users\1\AppData\Local\Temp\cc89P309.o:Untitled3.c:(.text+0x8e): undefined reference to `findfirst'

C:\Users\1\AppData\Local\Temp\cc89P309.o:Untitled3.c:(.text+0x1d8): undefined reference to `findnext'

+0

您的代码在哪行中出现该错误? –

+0

另外,一旦你在header.c中添加了'struct ffblk'的定义,它会出现吗? –

+0

最初代码只是main.c,但我得到了多个错误,并且看到了我创建header.h和header.c的例子。在struct ffblk ffblk声明的main.c处仍然出现了laste错误。 –

c语言中错误为ffblk未定义,C - 错误没有定义和存储未知相关推荐

  1. c语言中应该绝对避免一些的低级错误

    c语言中应该绝对避免一些的低级错误 在回顾重构代码.添加测试用例的时候,另外结合自己的经验,总结了这几条常见的C语言中的低级错误 先总结一下主要几点,后续有机会再逐渐补充例子 1.数组下标访问越界 个 ...

  2. python以下是变量合法命名的是_Python语言中以下哪个变量的命名是错误的

    [单选题]雨篷.阳台计量不正确的是( ) . [单选题]关于补体活化的MBL途径,哪项是错误的? [单选题]关于楼地面垫层的计量规则,描述错误的是( ). [单选题]根据<建设工程工程畺清单计价 ...

  3. c语言中错误为ffblk未定义,C语言中头文件及函数的含意的总分类

    ALLOC.H 说明内存管理函数(分配.释放等). ASSERT.H 定义assert调试宏. BIOS.H 说明调用IBM-PC ROM BIOS子程序的各个函数. CONIO.H 说明调用DOS控 ...

  4. error C2057: expected constant expression (C语言中数组的大小可以在程序运行时定义吗? )

    数组的大小可以在程序运行时定义吗? 不.在数组的定义中,数组的大小必须是编译时可知的,不能是在程序运行时才可知的.例如,假设i是一个变量,你就不能用i去定义一个数组的大小: char array[i] ...

  5. c语言中数组元素的正确引用,1. 若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 西工大机考<C语言程序设计>网考 寻求答案(非免费)找我Q和V:2082851315 试卷总分:100 得分:96 一. 单选题 (共 35 ...

  6. c语言中如何防止输入的格式存在错误,C语言如何避免输入

    C语言如何处理输入 下面这个题,数据的处理很简单,方法也很多.但是数据的输入如何处理呢,还要分多行输入!! 引用标题:错误票据 某涉密单位下发了某种票据,并要在年终全部收回. 每张票据有唯一的ID号. ...

  7. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  8. IOS笔记-C语言中的指针与数组

    1.指针与数组 1)指针与一维数组 i.数组指针(指向数组元素的指针) 类型  *指针变量名: 指针定义完成后要初始化(不想让指向任何内容,=0,=NULL) int a[10]; int *p =  ...

  9. c语言静态存储和动态存储,C语言中的静态内存与动态内存

    我们知道,内存分为动态内存和静态内存,我们先讲静态内存. 一.静态内存 内存管理---存储模型 存储模型决定了一个变量的内存分配方式和访问特性,在C语言中主要有三个维度来决定:1.存储时期 2.作用域 ...

最新文章

  1. Oracle 10g 之自动收集统计信息
  2. 判断仅有指针域的单链表是否有环且怎么找到环
  3. POJ 1386 欧拉路的判定
  4. 10601 - Cubes(Ploya)
  5. python中0xFFFFFFFFFFFFFFFF这种字符串是什么意思呢
  6. 如何使用C#自带的GDI+双缓冲类BufferedGraphics实现双缓冲功能
  7. C++ Variadic Templates(可变参数模板)
  8. lucene学习的小结
  9. mysql多实例分配空间_mysql多实例的配置
  10. 相量除法能用计算机吗,电路相量的加减乘除运算
  11. struct类型重定义 不同的基类型_C++学习大纲:联合类型
  12. 1.3计算机硬件的主要指标
  13. 字节码指令之控制转移指令
  14. 苹果系统自带的计算机怎么恢复出厂设置,苹果电脑恢复出厂化设置的教程_苹果电脑怎样恢复出厂系统-win7之家...
  15. Linux学习笔记之秋水BBR一键部署
  16. 解决www.54kk.com/baidu劫持浏览器的问题
  17. AMD GPU任务调度(1)—— 用户态分析
  18. base上海 Ai建筑设计 Python招聘ing
  19. 对标苹果,小米的高端不只是学习
  20. scrum 和敏捷介绍(概念、流程、自己的理解)

热门文章

  1. 西汉姆VS利物浦,铁锤『拳』出击,打回原『菱』形
  2. 安全多方计算之BGW算法
  3. [转载]Palm 串行通讯GPS数据读取的实现
  4. 无线mesh网络基础知识
  5. word “域” 插入图片目录
  6. 拓扑排序:绿豆蛙的归宿
  7. 0.96寸OLED显示屏驱动手册(SSD1306)
  8. 51单片机small compact large区别
  9. 服务器响应程序,封装高可复用的服务端响应SSC程序修复对象 --ServerResponse
  10. Mac如何查看隐藏文件夹