以下这个函数,我想大家都不会莫生!!<br />memcpy,以前经常没有出现过什么问题。<br />今天在PIC用了,有一些问题!!!不知道是为什么???<br />请大家指点一下!!!<br /><br />以下是我的程序:<br />#define RcvSize 4<br />uint8 rbuf[RcvSize] = {0}; <br />uint8 RevCount = 0;<br />uint8 RcvDataLen = 0;<br />//发送变量定义<br />#define TraSize 16<br />uint8 tbuf[TraSize]= {0};<br /><br /><br />void RevOpe(void)<br />{<br /> INTCONbits.GIE = false;<br /> memcpy(tbuf, rbuf, 4);<br /> memset(rbuf, 0x00, 4);<br /> RCSTAbits.CREN = true;<br /> INTCONbits.GIE = true;<br /> SendNumChar(tbuf, 4);<br />}<br /><br />但是这样会出现以下警告;<br />F: est_cardSci.c:131:Warning [2054] suspicious pointer conversion<br /><br /><br /><br /><br />以下是PIC18关于这个函数的说明:<br />memcpy<br />memcpypgm<br />memcpypgm2ram<br />memcpyram2pgm<br />通用软件函数库<br />说明: 该函数将buf1 中前memsize 个字节与buf2 中前memsize 个字节进<br />行比较,然后返回一个值,表明其中一个缓冲区是小于、等于还是大于<br />功能: 将源缓冲区的内容复制到目标缓冲区。<br />头文件: string.h<br />函数原型: void * memcpy(<br />void * dest,<br />const void * src,<br />size_t memsize );<br />rom void * memcpypgm(<br />rom void * dest,<br />const rom void * src,<br />sizerom_t memsize );<br />void * memcpypgm2ram(<br />void * dest,<br />const rom void * src,<br />sizeram_t memsize );<br />rom void * memcpyram2pgm(<br />rom void * dest,<br />const void * src,<br />sizeram_t memsize );<br />参数: dest<br />指向目标数组的指针。<br />src<br />指向源数组的指针。<br />memsize<br />从src 数组复制到dest 数组的字节数。<br />说明: 该函数将src 中前memsize 个字节复制到数组dest。如果src 与<br />dest 地址有重叠,则无法执行此操作(未定义)。 |
|