社区
C语言
帖子详情
如何将struct中数据存入char[]中(类型转换)
tianyxy
2004-10-10 03:04:51
因为串口通信的时候标准参数是char*,所以必须做struct ->char*的转换
例如:
struct stu{
char c;
char c[20];
unsigned x;
int y;
}
如何存入char buff[100]中,并且如何转换回struct类型?
...全文
375
12
打赏
收藏
如何将struct中数据存入char[]中(类型转换)
因为串口通信的时候标准参数是char*,所以必须做struct ->char*的转换 例如: struct stu{ char c; char c[20]; unsigned x; int y; } 如何存入char buff[100]中,并且如何转换回struct类型?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Leaveye
2004-10-10
打赏
举报
回复
如果只是发送,那可以定义一个只读的指针:
const union bytesunit * puSend;
Leaveye
2004-10-10
打赏
举报
回复
使用时,可以定义一个指针:
union bytesunit * puSend;
对于某一个 struct stu 变量 stu_struct,先让指针指向它:
puSend = (union bytesunit *) & stu_struct;
之后就可以用指针通过操作 puSend->Bytes[] 来操作 stu_struct 了。
Leaveye
2004-10-10
打赏
举报
回复
struct stu{
char c;
char c[20];
unsigned x;
int y;
}
union bytesunit {
struct stu struct_stu;
char Bytes[25];
}
25 是计算出的 sizeof(struct stu)
这样就可以把结构当字节串用了。
cxjddd
2004-10-10
打赏
举报
回复
当成一个 buffer,直接送就是了。不过小心字节序 >_<
tianyxy
2004-10-10
打赏
举报
回复
多谢 啸狮 晨星 老狼!!!
roarlion
2004-10-10
打赏
举报
回复
/*反变换*/
get(char s[])
{
struct stu e;
char *p=s; /*p指向数组首地址*/
int *y=(int *)(p+23); /* 定位y所对应数据的起始地址*/
unsigned *x=(unsigned *)(p+21); /* 定位x所对应数据的起始地址*/
e.c=*p; /*分别得到各成员的值*/
strcpy(e.str,p+1);
e.x=*x;
e.y=*y;
printf("%c\n%s\n%d\n%d",e.c,e.str,e.x,e.y); /*输出结果*/
}
tianyxy
2004-10-10
打赏
举报
回复
多谢各位 了 让俺赶紧试一试 哈哈
Hellboy
2004-10-10
打赏
举报
回复
struct stu stuSend;
如果每次只发送一个结构体,可以这样做。
char * pSend;
pSend = (char *) &stuSend;
Send(psend);
接收了以后
定义一个 struct stu * pstuSend;
pstuSend = (struct stu *) pSend;
。。。。。。。。
如果是要发送多个结构体
char buf[100];
memcpy(buf,&stuSend,sizeof(stuSend));
Send(buf);
接收
memcpy(&stuSend,buf,sizeof(stuSend));
roarlion
2004-10-10
打赏
举报
回复
struct stu{
char c;
char c[20];
unsigned x;
int y;
}
main()
{
struct stu e={'r',"hello",4,5}; /*结构体初始化*/
char s[30]; /*最后所得的结果*/
char *p;
int i;
p=(char *)&e; /*将结构体变量的地址给指针p */
for(i=0;i<sizeof(e);i++,p++) s[i]=*p; /* 逐个字节复制 */
}
tianyxy
2004-10-10
打赏
举报
回复
请问晨星:如何一个字节一个字节的拷贝,取出struct中的单个字节怎么做?
谢谢!
winco
2004-10-10
打赏
举报
回复
在buff中间加入特殊字符分隔,比如'#'
然后要做的工作就是把你的内容都存进去,取出来只不过是个逆过程而已
晨星
2004-10-10
打赏
举报
回复
根据通信协议,一个字节字节地拷贝。恢复时也一样。
matlab无法从double转换成cell_matlab
中
double、
char
和cell的互转
首先我们要读入txt文档,读入txt文档的函数为:A=importdata(filename.txt),读入之后才可以对文档进行处理,读入之后一般会有data和textdata两个字段,你需要那个就直接A.data或A.textdata获取。获取完之后就存在这转换问题了,比如我们最终要的格式为:可以看出有些事
char
字符型,有的是矩阵型所以接下来就是转换问题,前提是要弄清楚你要的是什么类型,有的是...
matlab
中
double、
char
和cell的互转
首先我们要读入txt文档,读入txt文档的函数为:A=importdata(filename.txt),读入之后才可以对文档进行处理,读入之后一般会有data和textdata两个字段,你需要那个就直接A.data或A.textdata获取。 获取完之后就存在这转换问题了,比如我们最终要的格式为: 可以看出有些事
char
字符型,有的是矩阵型 所以接下来就是转换问题,前提是要弄清楚你要的是什么类型...
Union和
struct
以及占据内存问题
主要讲
struct
和union以及字节对齐
xberg PDF 层级结构提取实战:基于字号 k-means 聚类还原 H1–H6 标题层级(Java 配置与原理全解析)
本篇技术指南围绕 xberg 的 PDF hierarchy extraction 功能展开:它能把 PDF
中
"看起来像标题"的文字(依据字号聚类与语义分析)还原成 H1–H6 的文档层级结构,并保留每个层级块的包围盒(bounding box)坐标。文
中
将以关联文档 `docs-site/src/snippets-generated/java/config/pdf_hierarchy_conf
完整且详细的C语言教程,从入门到精通(2.1)--C语言关键字(C89标准下的
数据
类型、IEEE 754 标准、大小端、pragma pack)
数据
类型(12个):
char
short int long float double signed unsigned
struct
union enum void
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章