请教:GCC中volatile声明改变了变量类型吗?

[复制链接]
 楼主| alphal 发表于 2008-8-18 13:48 | 显示全部楼层 |阅读模式
程序语句:<br />#include&nbsp;&ltstring.h&gt<br />1&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;volatile&nbsp;tempBuf[10];<br />2&nbsp;&nbsp;&nbsp;&nbsp;memset(tempBuf,&nbsp;0x0,&nbsp;sizeof(tempBuf));<br />用GCC编译器编译,会产生如下警告:<br />passing&nbsp;argument&nbsp;1&nbsp;of&nbsp;'memset'&nbsp;discards&nbsp;qualifiers&nbsp;form&nbsp;pointer&nbsp;targe&nbsp;type;<br />把第1句中的volatile去掉或第二句tempBuf前加强制类型转换(unsigned&nbsp;char&nbsp;*),警告消失.<br />难道第1句中用volatile后tempBuf的类型变了,不是指针类型了?<br />而用C51编译器不会有任何警告.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

112

主题

473

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部