我有一个错误,我不知道如何解决,这是:
expected specifier-qualifier-list before 'typedef'
在这一行:
typedef caddr_t ipsec_policy_t;
有人可以解释一下为什么以及如何解决这个问题?
编译器不知道caddr_t
是一种类型。编译此代码时,您可能希望检查相应的typedef是否在范围内。您可能错过了包含相应的头文件。
看起来编译器不知道caddr_t
是什么。确保在typedef之前存在适当的声明或包含。
这个是预期的错误。编译器找不到caddr_t
类型。这是因为它不是标准数据类型。它可以在某个头文件中声明,或者在您忘记包含的位置声明。
一些谷歌搜索后发现了一些与之相关的链接。
当我用“#define ipsec_policy_t char *”替换这个“typedef”定义时(因为我将caddr_t初始化为char指针),那么它可以工作!现在我有另一个错误,让我认为错误来自更高
对!错误的原因位于此行之上,因此请在源代码处或在预处理器输出处查看。
//A.h
typedef unsigned char uchar;
//B.h
struct B {
#include "A.h"
...
}
我刚才遇到了这个问题。当我从内部结构B移动include语句时它工作。