lhy-zero

c++同样结构体名冲突报错

两个不同的头文件中有同名的结构体

在编译项目文件的时候出现报错,结构体多次定义,其中一个头文件a的结构体是

typedef struct {
    double x, y;
} Point;

另外一个头文件b是

typedef struct Point
{
	int16 cardinality;
	uint8 num_coords;
	/* Open dimension coordinates are stored before the closed coordinates */
	int64 coordinates[FLEXIBLE_ARRAY_MEMBER];
} Point;

我在cpp文件中使用

#inclue "a.h"
#inclue "b.h"

时就报错

修改方法

假如a.h中的Point类不是我需要的,而b.h是我需要的,那么做下面的修改,define后面的名字随便取都行.

#inclue "a.h"
#define Point yourname
#inclue "b.h"

posted on 2023-10-30 11:27  valusoz_asz  阅读(146)  评论(0编辑  收藏  举报

导航