程序语句: #include <string.h> 1 unsigned char volatile tempBuf[10]; 2 memset(tempBuf, 0x0, sizeof(tempBuf)); 用GCC编译器编译,会产生如下警告: passing argument 1 of 'memset' discards qualifiers form pointer targe type; 把第1句中的volatile去掉或第二句tempBuf前加强制类型转换(unsigned char *),警告消失. 难道第1句中用volatile后tempBuf的类型变了,不是指针类型了?? 而用C51编译器则不会有任何警告.
[volatile关键字本身的意义及作用此处不需讨论,网上有很多资料] |