抬头,这是一个课堂作业,所以,你知道,学术诚实等等。
我有一个像这样定义的结构:
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
是一个结构或我定义的东西,我会知道该怎么做,但显然事实并非如此。有什么想法吗?
答案 0 :(得分:1)
FILE* file = fopen(argc[1]);
fopen
函数有两个参数,但是你只传递一个参数。
然后:
run(um);
};
^
您必须删除尾随;
。
并确保stdio.h
包括fopen
,stdint
类型包含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>