0

注意,这是课堂作业,所以,你知道,学术诚实等等。

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

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,但显然情况并非如此。有任何想法吗?

4

2 回答 2

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

以上是fopen().It 的声明,它需要两个参数,但您只传递一个。

它会给你错误信息:

too few arguments to function ‘fopen’

而且在您使用的结构中int32_t,包括或<sys/types.h>

于 2012-11-11T22:15:08.850 回答
1
FILE* file = fopen(argc[1]);  

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

然后:

    run(um);
};

 ^

您必须删除尾随;.

并且一定要包括stdio.hforfopenstdintforint32_t类型。

最后:

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

你可能的意思是:

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

以避免混淆。

那么当然你将不得不在你的通话中使用argv[1]而不是。argc[1]fopen

于 2012-11-11T21:45:53.337 回答