'int32_t'之前的预期说明符限定符列表

时间:2012-11-11 21:43:12

标签: c compiler-errors

抬头,这是一个课堂作业,所以,你知道,学术诚实等等。

我有一个像这样定义的结构:

typdef struct {
    int32_t r[8];
    Seq_T m;
    Seq_T lengths;
    int32_t ctr;
} UM_T;

在我添加客户端之前,所有内容都编译得很好,包括实现:

#include "um.h"

int main(int argv, char* argc[]){                                                    
    FILE* file = fopen(argc[1]);                                                     
    UM_T* um = UM_new (file);                                                        
    run(um);                                                                         
};

现在编译器(gcc)告诉我:

um.h:5: error: expected specifier-qualifier-list before 'int32_t'

如果int32_t是一个结构或我定义的东西,我会知道该怎么做,但显然事实并非如此。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

FILE* file = fopen(argc[1]);  

fopen函数有两个参数,但是你只传递一个参数。

然后:

    run(um);
};

 ^

您必须删除尾随;

并确保stdio.h包括fopenstdint类型包含int32_t

最后:

int main(int argv, char* argc[])
你可能意味着:

int main(int argc, char *argv[])

避免混淆。

当然,您必须在argv[1]来电中使用argc[1]代替fopen

答案 1 :(得分:1)

FILE *fopen(const char *path, const char *mode);

以上是fopen()的声明。它需要两个参数但你要传递 只有一个。

它会给你错误信息:

too few arguments to function ‘fopen’

并且您使用的结构int32_t也包含或<sys/types.h>