weixin_43911167 2021-05-13 21:09 采纳率: 100%
浏览 68
已采纳

. c文件改成. cpp文件后结构体会发生变化吗?

.cpp文件可以既写c又写c++吧,为什么我把.c文件转成.cpp文件后,本来结构体里定义的结构体就不是该结构体里的成员了?

.h文件里定义结构体:

struct MsgHeader	//封装消息头
{
	enum MSGTAG msgID;	//当前消息标记    4
	union MyUnion
	{
		struct
		{
			char fileName[100];	//文件名    100
			int fileSize;	//文件大小    4
			int sharding;	//分片数	4
		}fileInfo;
		struct
		{
			int nStart;	//包的编号    4
			int nsize;	//包的数据大小    4
			char buf[PACKET_SIZE];
			int s;	//检验和	4
		}packet;
	};
};

 编译出错:

 

  • 写回答

3条回答 默认 最新

  • benbenli 2021-05-13 22:11
    关注

    给union定义以各名字就可以了 header.fileOrPackage.fileInfo

    struct MsgHeader	//封装消息头
    {
    	enum MSGTAG msgID;	//当前消息标记    4
    	union MyUnion
    	{
    		struct
    		{
    			char fileName[100];	//文件名    100
    			int fileSize;	//文件大小    4
    			int sharding;	//分片数	4
    		}fileInfo;
    		struct
    		{
    			int nStart;	//包的编号    4
    			int nsize;	//包的数据大小    4
    			char buf[PACKET_SIZE];
    			int s;	//检验和	4
    		}packet;
    	} fileOrPacket;
    } header;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器