“typedef”之前的预期说明符限定符列表

问题描述 投票:0回答:5

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

expected specifier-qualifier-list before 'typedef'

在这一行:

typedef caddr_t ipsec_policy_t;

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

c typedef
5个回答
0
投票

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


0
投票

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


0
投票

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

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

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

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


0
投票

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

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


0
投票
//A.h
typedef unsigned char uchar;

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

我刚才遇到了这个问题。当我从内部结构B移动include语句时它工作。

© www.soinside.com 2019 - 2024. All rights reserved.