C语言:结构体或联合体在多个c文件中公用的方法

  • 格式:pdf
  • 大小:50.46 KB
  • 文档页数:1

下载文档原格式

  / 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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;则在编译时会提示重复定义的错误。