- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在extern声明外部结构体变量时,遇到问题如下:a.c文件structSTRUCT_PLC_MDL_ProductInfo {Uint16 ManufacturerID;// 路由模块厂商代码Uint16 ModelID;// 路由模块芯片代码union { Uint8 BS[3];struct { Uint8 YY;// 年BCD码 Uint8 MM;// 月BCD码 Uint8 DD;// 日BCD码 } bytes;} VersionDate;// 路由模块版本日期Uint16 VersionID;// 路由模块版本号Uint8 COMType;// 路由模块通信方式Uint8 CH_NUM;// 路由模块信道个数Uint8 ProductID[6];// 路由模块生产编号Uint8 STR_PMType[10];// 路由模块类型型号(ASCII码)Uint8 STR_ProductDate[10];// 路由模块生产日期(ASCII码)Uint8 STR_PMCopyRight[32];// 路由模块版本信息(ASCII码)Uint8 STR_PMManufacturer [32];// 路由模块厂商信息(ASCII码)};conststructSTRUCT_PLC_MDL_ProductInfoPLC_MDL_ProductInfo = {\0x7068, 0x6463, {0x11, 0x02, 0x03}, 0x0000, 0x02, 0x01, \{0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, PLR-M1.0 , 2011-02-10, \路由模块版本信息, \路由模块厂商信息 };a.h文件externconststructSTRUCT_PLC_MDL_ProductInfoPLC_MDL_ProductInfo;b.c文件#include “a.h”Uint16 a;a = PLC_MDL_ProductInfo.ModelID;编译出错,提示a.h文件中的PLC_MDL_ProductInfo必须是一个结构体或者共用体。于是就很困惑:按之前的了解,extent声明外部变量不都是这样写的吗,直接声明就行了,在a.h中声明变量PLC_MDL_ProductInfo,然后在b.c中包含头文件a.h,不就可以用变量PLC_MDL_ProductInfo了吗?然而这里确报错了。最后,经过询问别人,查询资料,知晓大概原因:之前的extern声明变量遇到的都是基本类型的外部变量,然而这里确是声明的外部变量却是构造类型(结构体)类型。问题就出在这里。a.h中虽然声明了结构体变量PLC_MDL_ProductInfo,但是却没有该结构体的定义实体,所以编译器就报错了。于是改动如下:a.c文件#include “a.h”conststructSTRUCT_PLC_MDL_ProductInfoPLC_MDL_ProductInfo = {\0x7068, 0x6463, {0x11, 0x02, 0x03}, 0x0000, 0x02, 0x01, \{0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, PLR-M1.0 , 2011-02-10, \路由模块版本信息, \路由模块厂商信息 };a.h文件structSTRUCT_PLC_MDL_ProductInfo {Uint16 ManufacturerID;// 路由模块厂商代码Uint16 ModelID;// 路由模块芯片代码union { Uint8 BS[3];struct { Uint8 YY;// 年BCD码 Uint8 MM;// 月BCD码 Uint8 DD;// 日BCD码 } bytes;} VersionDate;// 路由模块版本日期Uint16 VersionID;// 路由模块版本号Uint8 COMType;// 路由模块通信方式Uint8 CH_NUM;// 路由模块信道个数Uint8 ProductID[6];// 路由模块生产编号Uint8 STR_PMType[10];// 路由模块类型型号(ASCII码)Uint8 STR_ProductDate[10];// 路由模块生产日期(ASCII码)Uint8 STR_PMCopyRight[32];// 路由模块版本信息(ASCII码)Uint8 STR_PMManufacturer [32];// 路由模块厂商信息(ASCII码)};externconststructSTRUCT_PLC_MDL_ProductInf
您可能关注的文档
- eterm常见错误代码.doc
- EtherNet现在进行时.doc
- ET服装CAD系统快捷键.docx
- EVA复合布胶水鞋材复合胶水.doc
- Evisu品牌的衣服产品渠道现状.doc
- Excel2003中的快捷键.docx
- Excel2003高级VBA编程宝典.doc
- excel2007全部函数.docx
- EXCEL97宏语言简介.doc
- excelhome扩展函数库.doc
- 松原市公安局2025年招聘255名警务辅助人员笔试模拟试题及参考答案详解一套.docx
- 浙江金华市应急管理局所属金华市应急管理技术服务保障中心选调工作人员笔试模拟试题带答案详解.docx
- 浙江温州市司法局下属事业单位温州市公共法律服务中心选调笔试模拟试题及参考答案详解1套.docx
- 浙江金华武义县人民武装部综合保障中心招聘笔试模拟试题附答案详解.docx
- 福建海事局2024年度公开招聘事业单位工作人员笔试模拟试题及完整答案详解1套.docx
- 浙江省大盘山国家级自然保护区管理局引进高层次人才笔试模拟试题及参考答案详解.docx
- 浙江玉环市公安局警务辅助人员招聘19人笔试模拟试题及参考答案详解一套.docx
- 浙江宁波市鄞州区司法局编外人员招聘笔试模拟试题及参考答案详解一套.docx
- 广东珠海市斗门区人民法院特邀调解员招聘10人笔试模拟试题及答案详解1套.docx
- 浙江永康市公证处工作人员招聘笔试模拟试题参考答案详解.docx
文档评论(0)