打印

请教个c语言问题

[复制链接]
1817|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 | 只看该作者

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

使用特权

评论回复
5
huangqi412|  楼主 | 2007-9-6 00:15 | 只看该作者

再问一下

如果要把test地址赋给一个char指针p呢
struct test
Char *p  
char a;
P= (uchar *)(&test)
a=*p 好象不行 单步仿真 a内容不是test第一个字节内容

使用特权

评论回复
6
computer00| | 2007-9-6 01:43 | 只看该作者

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

使用特权

评论回复
7
huangqi412|  楼主 | 2007-9-6 07:38 | 只看该作者

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

不知道为什么,while(1) a=*p++;  a好象没变化

使用特权

评论回复
8
huangqi412|  楼主 | 2007-9-6 07:53 | 只看该作者

笔误,搞顶了

使用特权

评论回复
9
ayb_ice| | 2007-9-6 08:39 | 只看该作者

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

使用特权

评论回复
10
computer00| | 2007-9-6 08:41 | 只看该作者

那样更麻烦。

使用特权

评论回复
11
eagle758| | 2007-9-6 08:49 | 只看该作者

re

你按字节这样发送出去.接收方也定义这个一个结构体,接收内容按接收的顺序放入这个结构体.那么INT类型的数据不是也能自己识别.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

622

主题

24960

帖子

18

粉丝