C语言:结构体或联合体在多个c文件中公用的方法
- 格式:pdf
- 大小:50.46 KB
- 文档页数:1
C语言:结构体或联合体在多个c文件中公用的方法
希望在头文件中定义一个结构体或者联合体,然后包含到两个不同的c文件中,希望这个结构体或者联合体能在两个文件中共用。
举例说明:项目文件夹project下有sub1.c、sub2.c和Sys.h三个文件,其中Sys.h文件分别#include在sub1.c和sub2.c文件中。现在在Sys.h定义一个联合体,如下:
#ifndef_Sys_H_
#define_Sys_H_
//
/*定义一个联合体结构,用于处理位变量*/
typedef union
{
unsigned char var;
struct
{
unsigned RX_DR_IRQ_F:1;//
unsigned TX_DS_IRQ_F:1;//
unsigned MAX_RT_IRQ_F:1;//
unsigned F3:1;
unsigned F4:1;
unsigned F5:1;
unsigned F6:1;
unsigned F7:1;
}bit;
}BitFlag;
#endif
1.Sub1.c源程序文件:
在sub1.c源程序文件中定义一个联合体变量,如下:
#include“Sys.h”
BitFlag Flag;
2.Sub2.c源程序文件:
在sub2.c源程序文件中声明一个联合体变量,表示次变量来源于外部源程序文件,如下:
#include“Sys.h”
extern BitFlag Flag;
注意,如果在此源程序文件中写成:BitFlag Flag;则在编译时会提示重复定义的错误。