C fpost错误,由于分配给类型‘;fpos#u t’;

C fpost错误,由于分配给类型‘;fpos#u t’;,c,C,错误 decITS.c:152:26:错误:从类型“int”分配给类型“fpos\u t”时,类型不兼容 如果(fsize)doneBytes=fsize fpos\u t“这是一种完整的对象类型,而不是能够记录唯一指定文件中每个位置所需的所有信息的数组类型。” 它不一定是某种数字类型(可能是一种结构) 要初始化,请更改fpos\u t doneBytes=0tofpos\u t doneBytes={0} 将其值读取为某个整数不是定义的 代码试图以非设计的方式使用fpos static voi

错误

decITS.c:152:26:错误:从类型“int”分配给类型“fpos\u t”时,类型不兼容 如果(fsize)doneBytes=fsize

fpos\u t
“这是一种完整的对象类型,而不是能够记录唯一指定文件中每个位置所需的所有信息的数组类型。”

它不一定是某种数字类型(可能是一种结构)

要初始化,请更改fpos\u t doneBytes=0to
fpos\u t doneBytes={0}

将其值读取为某个整数不是定义的

代码试图以非设计的方式使用fpos

static void ITSReadNextLine(char *line, FILE *f,int fsize, int *eof) {

    fpos_t doneBytes ={0};

    if (fgets(line, LINE_BUFF_SIZE, f)) {
        if (fsize) fgetpos(f, &doneBytes);
        *eof = 0;
    }
    else {
        if (fsize) doneBytes = fsize;
        *eof = 1;
    }
    if (fsize) progress("ITS-Trace-File %i%% done", (int)((100*doneBytes)/fsize));
}