typedef struct _seqof1 {
struct _seqof1 *next;
HS_SCCH_Codes value;
} *_seqof1;
编译出的错误
D:\gcctest\include>gcc abc.c
In file included from abc.c:27:
abc.h:595: error: conflicting declaration 'typedef struct _seqof1*_seqof1'
abc.h:592: error: 'struct _seqof1' has a previous declaration as `struct _seqof1
我分析了下,似乎它是使用了C++编译器,有什么办法使得它能够对这个.h文件使用C编译器呢?如果使用C编译器,应该不会报这种错的啊。
'
7 个解决方案
看报错提示就该明白,不能把struct _seqof1类型转化为*_seqof1类型
楼主清楚typedef什么概念吗?
typedef struct _seqof1 { //定义结构体_seqof1
struct _seqof1 *next;
HS_SCCH_Codes value;
} *_seqof1; //定义结构体指针
_seqof1
typedef
_seqof1* _seqof1; 两者命名相同,不可能编过,解决办法为使用去掉第一行的_seqof1或换成另外一个名字
typedef struct _seqof1 { //定义结构体_seqof1
struct _seqof1 *next;
HS_SCCH_Codes value;
} *_seqof1; //定义结构体指针_seqof1
这个是花钱买的工具自动生成的,不是人编写的。这个不能修改的,只能通过选择编译器或者更改编译选项来解决。
typedef是用来定义结构的,结构名不能放在struct后面