首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

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

同一个结构体在多个头文件引用重定义问题
一个结构体
列如
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
  

热点排行