请教个c语言问题

[复制链接]
2665|10
 楼主| huangqi412 发表于 2007-9-5 22:17 | 显示全部楼层 |阅读模式
char *p; //指针
Struct  //结构体
{
Int a;
Char b;
Char c;
Int d;
~~
}test; 
有一个函数void out_str(char leng ,char *buf) //送出
现在怎么用这个函数把struct送出呢。
直接用一个uchar指针的话会有int高低字节顺序问题 
应该可以用一个包含数组和结构体的公用体解决吧
看别人解决方法是(uchar *)(&test)  没看懂怎么拆开分析
&test是取test 首地址,uchar *呢 两部分怎么合起来的呢。


computer00 发表于 2007-9-5 22:41 | 显示全部楼层

强制转换为char型的指针了。

 楼主| huangqi412 发表于 2007-9-5 22:42 | 显示全部楼层

00,和平常的(int)8 一样的?

computer00 发表于 2007-9-5 23:16 | 显示全部楼层

意思差不多,都是强制类型转换。

 楼主| huangqi412 发表于 2007-9-6 00:15 | 显示全部楼层

再问一下

如果要把test地址赋给一个char指针p呢
struct test
Char *p  
char a;
P= (uchar *)(&test)
a=*p 好象不行 单步仿真 a内容不是test第一个字节内容
computer00 发表于 2007-9-6 01:43 | 显示全部楼层

肯定是你哪儿搞错了...多试试,自己找找规律。

 楼主| huangqi412 发表于 2007-9-6 07:38 | 显示全部楼层

hehe, 总共才几条语句啊,没什么检查的了

不知道为什么,while(1) a=*p++;  a好象没变化
 楼主| huangqi412 发表于 2007-9-6 07:53 | 显示全部楼层

笔误,搞顶了

ayb_ice 发表于 2007-9-6 08:39 | 显示全部楼层

定义成void out_str(char leng ,test* buf)不就行了...

computer00 发表于 2007-9-6 08:41 | 显示全部楼层

那样更麻烦。

eagle758 发表于 2007-9-6 08:49 | 显示全部楼层

re

你按字节这样发送出去.接收方也定义这个一个结构体,接收内容按接收的顺序放入这个结构体.那么INT类型的数据不是也能自己识别.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

622

主题

24960

帖子

18

粉丝
快速回复 在线客服 返回列表 返回顶部