预期的说明符 - 限定符列表" typedef"

时间:2014-07-31 10:37:43

标签: c typedef

我有一个错误,我不知道如何解决,这是:

expected specifier-qualifier-list before 'typedef'

在这一行:

typedef caddr_t ipsec_policy_t;

有人可以解释一下为什么以及如何解决这个问题?

5 个答案:

答案 0 :(得分:0)

编译器不知道caddr_t是一种类型。编译此代码时,您可能希望检查相应的typedef是否在范围内。您可能错过了包含相应的头文件。

答案 1 :(得分:0)

看起来编译器不知道caddr_t是什么。确保在typedef之前存在适当的声明或包含。

答案 2 :(得分:0)

这是预期的错误。编译器找不到caddr_t类型。这是因为它不是标准数据类型。它可以在某个头文件中声明,或者在您忘记包含的位置声明。

经过一些谷歌搜索后发现了一些与之相关的链接。

http://lxr.free-electrons.com/ident?i=caddr_t

What is the significance of caddr_t and when is it used?

答案 3 :(得分:0)

  

当我用“#define ipsec_policy_t”替换这个“typedef”定义时   char *“(因为我初始化caddr_t作为char指针),然后它工作   !现在我有另一个错误,让我认为错误来了   来自更高

右键!错误的原因在于此行,因此请在源代码处或在预处理器输出处查看。

答案 4 :(得分:0)

//A.h
typedef unsigned char uchar;

//B.h
struct B {
    #include "A.h"
   ...
}

我刚才遇到了这个问题。当我从内部结构B移动include语句时,它是有效的。