打印

c51 遇到的问题

[复制链接]
3428|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xg3469|  楼主 | 2012-9-7 16:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用 c51编译一个程序,出现了警告信息:
d:\BIN1\NS9F2.C(2995): warning C182: pointer to different objects

警告该语句有问题,strncpy(siobuf,fz17,8);我是想把数组fz17[]中的unicode码拷贝到串口发送缓冲区的。

uint code fz17[8]= {0x624b,0x673a,0x53f7,0x7801};

请专家指点该用哪个函数,哪本书里介绍这些函数?谢谢。

相关帖子

沙发
coody| | 2012-9-7 16:40 | 只看该作者
指针不匹配。

使用特权

评论回复
板凳
xg3469|  楼主 | 2012-9-7 16:59 | 只看该作者
请2楼老师详细说说好吗?

使用特权

评论回复
地板
znmcu| | 2012-9-7 17:13 | 只看该作者
还是那句话:80%的问题源于c语言。
你siobuf的类型我猜是uchar

使用特权

评论回复
5
airwill| | 2012-9-7 18:25 | 只看该作者
是不是 strncpy 定义里的
两个指针的类型和应用中的不匹配?

使用特权

评论回复
6
celticzy| | 2012-9-7 18:42 | 只看该作者
C51中的strncpy 的原型是char *strncpy (char *s1, char *s2, int n),你的fz17数组是明显16位的,当然要出错

使用特权

评论回复
7
xg3469|  楼主 | 2012-9-7 22:57 | 只看该作者
谢谢4、5、6楼,用dos版C51是可以的,我再试试。

使用特权

评论回复
8
xg3469|  楼主 | 2012-9-7 23:07 | 只看该作者
在数组fz17里,4个16位数,我按8个字节处理不行吗?

使用特权

评论回复
9
xg3469|  楼主 | 2012-9-7 23:24 | 只看该作者
向各位汇报:将uint code fz17[8]= {0x624b,0x673a,0x53f7,0x7801};改为
             uchar code fz17[8]= {0x624b,0x673a,0x53f7,0x7801};就可以了。谢谢大家。

使用特权

评论回复
10
amwrdfe| | 2012-9-8 00:39 | 只看该作者
uchar code fz17[8]= {0x624b,0x673a,0x53f7,0x7801}
这本身就是一个错误,虽然你的编译器不提醒你。

使用特权

评论回复
11
xg3469|  楼主 | 2012-9-8 22:08 | 只看该作者
我试了 uchar code fz17[8]= {0x62,0x4b,0x67,0x3a,0x53,0xf7,0x78,0x01} 和
uchar code fz17[8]= {0x624b,0x673a,0x53f7,0x7801},虽然编译都能通过,但改为 uchar code fz17[]= {0x62,0x4b,0x67,0x3a,0x53,0xf7,0x78,0x01} 才正确。谢谢10楼。

使用特权

评论回复
12
P__204| | 2012-9-9 23:35 | 只看该作者
围观

使用特权

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

本版积分规则

5

主题

595

帖子

1

粉丝