读书人

同一个结构体在多个头文件引用重定义有

发布时间: 2012-12-31 11:57:52 作者: rapoo

同一个结构体在多个头文件引用重定义问题
一个结构体
列如
struct book {
int value;
char name【50】;
};

要在 1.h 2.h 3.h 头文件使用
在1.h 2.h 3.h 使用
#ifndef _HEADERNAME_H
#define _HEADERNAME_H
......
#endif


然后在主函数中 如main.c中 要包含1.h 2.h 3.h
编译报错 重定义结构体

问题是因为1.h 2.h 3.h中即使使用#ifndef 那么结构体肯定在1.h 2.h 3.h被定义
然而在main.c中 包含1.h 2.h 3.h 当然是重定义了结构体

这样应该怎么办?
[解决办法]
新建一个common.h ,再包含试试 1.h,2.h,3.h 都include"common.h"


#ifndef _COMMON_H
#define _COMMON_H
struct book
{
int value;
char name[50];
};
#endif

读书人网 >C语言

热点推荐