当前位置: 代码迷 >> WinCE >> 请问关于evc中sizeof()函数的有关问题
  详细解决方案

请问关于evc中sizeof()函数的有关问题

热度:56   发布时间:2016-04-28 13:23:36.0
请教关于evc中sizeof()函数的问题
大哥大姐们好!小弟这儿有礼了!一定给分!
  我在写一个读取串口的程序,但是在其中的sizeof()函数中遇到了问题。当要向串口写数据时,我使用了函数
  fWriteStat = WriteFile(hCom, lpBuf, sizeof(lpBuf),&dwHaveNumWritten,NULL); 
  其中lpBuf定义为char *lpBuf 类型。
  但是无论我给lpBuf什么样子的值,都只能传输四个字节给串口。比如我要传数据w shao...,但是串口的另一端只能接收到w s。后面的字符都接收不到。
  这里我用串口调试工具接受串口数据,接受部分肯定没有问题。并且,当我把sizeof(lpBuf)该成40时,即
  fWriteStat = WriteFile(hCom, lpBuf, 40,&dwHaveNumWritten,NULL); 
  串口可以成功的将40个字符顺利传出。
  请问为什么会出现这个问题?莫非是不该用sizeof()还是因为sizeof()里的参数类型不对?

  或者说我打得sdk有问题?
 
                                谢谢,一定给分,我信誉很好


------解决方案--------------------
是sizeof()的问题...

sizeof要对一个空间取长度的时候,必须要求这个类型在本文件域内有确定的显示的长度

你传入的是一个地址,这个地址不明确,所以它就取这个地址的类型了

如果你传入一个数组,数组是确定长度的,这就安全明确了....

你传:

char TBuf[40];

sizeof(TBuf[]);
  相关解决方案