打印

没有想通的问题!!请教!!!

[复制链接]
3274|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
win2000_li|  楼主 | 2008-1-11 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下这个函数,我想大家都不会莫生!!
memcpy,以前经常没有出现过什么问题。
今天在PIC用了,有一些问题!!!不知道是为什么???
请大家指点一下!!!

以下是我的程序:
#define RcvSize 4
uint8 rbuf[RcvSize] = {0}; 
uint8 RevCount = 0;
uint8 RcvDataLen = 0;
//发送变量定义
#define TraSize 16
uint8 tbuf[TraSize]= {0};


void RevOpe(void)
{
     INTCONbits.GIE = false;
     memcpy(tbuf, rbuf, 4);
     memset(rbuf, 0x00, 4);
     RCSTAbits.CREN = true;
     INTCONbits.GIE = true;
     SendNumChar(tbuf, 4);
}

但是这样会出现以下警告;
F: est_cardSci.c:131:Warning [2054] suspicious pointer conversion




以下是PIC18关于这个函数的说明:
memcpy
memcpypgm
memcpypgm2ram
memcpyram2pgm
通用软件函数库
说明: 该函数将buf1 中前memsize 个字节与buf2 中前memsize 个字节进
行比较,然后返回一个值,表明其中一个缓冲区是小于、等于还是大于
功能: 将源缓冲区的内容复制到目标缓冲区。
头文件: string.h
函数原型: void * memcpy(
void * dest,
const void * src,
size_t memsize );
rom void * memcpypgm(
rom void * dest,
const rom void * src,
sizerom_t memsize );
void * memcpypgm2ram(
void * dest,
const rom void * src,
sizeram_t memsize );
rom void * memcpyram2pgm(
rom void * dest,
const void * src,
sizeram_t memsize );
参数: dest
指向目标数组的指针。
src
指向源数组的指针。
memsize
从src 数组复制到dest 数组的字节数。
说明: 该函数将src 中前memsize 个字节复制到数组dest。如果src 与
dest 地址有重叠,则无法执行此操作(未定义)。
沙发
win2000_li|  楼主 | 2008-1-11 21:32 | 只看该作者

自已顶一个啊!!!

通用软件函数库
说明: 该函数将buf1 中前memsize 个字节与buf2 中前memsize 个字节进
行比较,然后返回一个值,表明其中一个缓冲区是小于、等于还是大于
void * dest,const void * src,size_t memsize );
rom void * memcpypgm(rom void * dest,const rom void * src,sizerom_t memsize );
void * memcpypgm2ram(void * dest,const rom void * src,sizeram_t memsize );
rom void * memcpyram2pgm(rom void * dest,const void * src,sizeram_t memsize );
参数: dest
指向目标数组的指针。
src
指向源数组的指针。
memsize
从src 数组复制到dest 数组的字节数。
说明: 该函数将src 中前memsize 个字节复制到数组dest。如果src 与
dest 地址有重叠,则无法执行此操作(未定义)。

使用特权

评论回复
板凳
兰天白云| | 2008-1-11 21:53 | 只看该作者

这样可能会好点

     memcpy(&tbuf[0], &rbuf[0], 4);
     memset(&rbuf[0], 0x00, 4);

使用特权

评论回复
地板
win2000_li|  楼主 | 2008-1-11 22:09 | 只看该作者

谢谢大家回复,我去试一试。

使用特权

评论回复
5
win2000_li|  楼主 | 2008-1-11 22:13 | 只看该作者

谢谢大哥!!!

谢谢“兰天白云”大哥!!兄弟受教了。

努力!!!! 

使用特权

评论回复
6
shuidi_wangdan| | 2013-8-20 15:51 | 只看该作者
兰天白云 发表于 2008-1-11 21:53
     memcpy(&tbuf[0], &rbuf[0], 4);      ...

蓝天大哥,我也遇到这样的一个问题,Warning [2054] suspicious pointer conversion,我的是函数参数定义的是指针,但调用的时候是字符串,如下:void show_Char(const rom far uchar *p,uchar adrPage,uchar adrColumn),调用如下:show_Char(“定义”,0,0),有什么办法可以解决吗?

使用特权

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

本版积分规则

142

主题

718

帖子

1

粉丝