C语言共用体内结构体

[复制链接]
查看11 | 回复3 | 2010-7-14 20:53:48 | 显示全部楼层 |阅读模式
typedef union{

unsigned char data_L[64];
struct{

unsigned char L1[16];

unsigned char L2[16];

unsigned char L3[16];

unsigned char L4[16];
}data_M;
}data_t;
//这么声明合法吗,我能对L1,L2进行赋值吗,能的话该怎么赋值??
//能不能吧字符串赋给L1

回复

使用道具 举报

千问 | 2010-7-14 20:53:48 | 显示全部楼层
可以的哈!举个简单的例子吧,希望楼主能理解!!!!#include#includetypedefunion{
unsigned char data_L[64];struct{
char L1[16];
char L2[16];
unsigned char L3[16];
unsigned char L4[16];}data_M;}data_t;void main (){ data_t a; strcpy(a.data_M.L1,"hello world !"); strcpy(
回复

使用道具 举报

千问 | 2010-7-14 20:53:48 | 显示全部楼层
可以的 data_t data;// data_t定义一个变量 scanf("%s",&data.data_M.L1);//data.data_M.L1 字符串直接赋值是不行的,只能单个字符赋值,要用字符串那只能在初始化的时候,比如char a[4]="asdf";在后面赋值的话就是错的,比如char a[5];a="sdf"是不对的
回复

使用道具 举报

千问 | 2010-7-14 20:53:48 | 显示全部楼层
合法吧。data_t a;a.data_M.L1=XXX;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行