首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

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

2012-04-03 
请教关于evc中sizeof()函数的问题大哥大姐们好!小弟这儿有礼了!一定给分!  我在写一个读取串口的程序,但是

请教关于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[]);

热点排行