.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;
};
};
编译出错:
给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;
在函数中,对变量的声明必须放置到函数开始的地方,不许在函数声明语句块中插入任何语句,赋值语句,函数执行语句,都不许在成名语句段中出现,否则就会出错!
参考一下https://www.cnblogs.com/arxive/p/5072681.html
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632