C 非法使用类型作为表达式
我的源代码中有以下几行给出了错误 错误C2275:“HPDF_数组”:将此类型非法用作表达式 : 这是头文件中的实际代码:C 非法使用类型作为表达式,c,compiler-errors,libharu,C,Compiler Errors,Libharu,我的源代码中有以下几行给出了错误 错误C2275:“HPDF_数组”:将此类型非法用作表达式 : 这是头文件中的实际代码: 如何解决此错误?此代码适用于我的编译器gcc 4.7.1,因此如果您仍然有问题,可能需要显示更多代码或信息: // content of this struct is irrelevant, so I just made a dummy struct struct _HPDF_Array_Rec { int dummy; }; typedef struct _H
如何解决此错误?此代码适用于我的编译器gcc 4.7.1,因此如果您仍然有问题,可能需要显示更多代码或信息:
// content of this struct is irrelevant, so I just made a dummy struct
struct _HPDF_Array_Rec {
int dummy;
};
typedef struct _HPDF_Array_Rec *HPDF_Array;
HPDF_Array id;
问题中的代码所做的是将类型HPDF_数组定义为指向类型struct_HPDF_Array_Rec的指针,并实例化一个HPDF_数组,该数组是指向名为id的_HDPF_Array_Rec结构的指针
编辑:
代码仍然可以正常工作。我在谷歌上搜索了错误代码,得到了以下信息:
检查代码中是否存在此类错误。无论你在哪里做HPDF_数组->什么而不是id->什么 如果编译hpdf_pdfa.c文件时出错,请移动
HPDF_Array id;
指向HPDF_PDFA_GenerateIDHPDF_Doc pdf函数开头的行
<2.>看来,2.2.1分支是作为C++代码构建的,提交者没有注意到错误。在中继分支中,此错误已修复。是否定义了_HPDF\u Array\u Rec?这是你的真实代码吗?不,这实际上是一个名为“libharu”的开源项目的一部分。我不认为这实际上是你问题的原因,但定义一个名为_HPDF_Array_Rec的符号是未定义的行为。我只是用更多的代码更新了我的问题,可能这会更清楚。对于同一个结构,可以使用typedefs吗?一个已定义,另一个未定义?
An expression uses the -> operator with a typedef identifier.
HPDF_Array id;