新版WinAVR20070101"pointer targets in passing argument 4 of 'disp16x16
使用新版本avr-gcc (GCC) 4.1.1 (WinAVR 20070101) 进行编译时,出现很多句“warning: pointer targets in passing argument 4 of 'disp16x16' differ in signedness”的警告,是怎么回事?
同样的程序在之前版本的WinAVR下编译并没有出现此类提示!
请各位指教! 看看你的函数原型 函数原型
void disp16x16(unsigned int x,unsigned int y,const unsigned char *s,unsigned char *var,unsigned char blackflag);
函数调用
disp16x16(17,180,PSTR("1234"),"",0);
disp16x16(26,127,PSTR(""),aaa,0);
-----此内容被jjjjjjim于2007-01-23,08:32:47编辑过 第4个参数是指针型
disp16x16(26,127,PSTR(""),aaa,0);
这里面的第4个是什么类型的啊? unsigned char aaa;//字符串临时储存数组
aaa="1";
aaa="2";
aaa="3";
aaa="4";
aaa="5";
aaa=0;
disp16x16(26,127,PSTR(""),aaa,0); 我的连编译都不能进行
提示__span?v的错误 我也遇到这样的问题了,以前的版本没有,winavr20070122,好像和指针有关,没有找到解决办法 该版本已经因为严重的bug而被废弃,请下载最新版20070122 回楼上,我用的就是20070122版本,也有提示,不过我不直接引用,就不出这个提示了,程序正常。 增加编译参数:
-Wno-pointer-sign 有符号,无符号类型不匹配,没什么大问题。想不要这类提示,只要强制类型转换就行了。 炒旧饭.... :P
今天也遇到了这个问题,用新的版本GCC. 后来在avrFreaks找到了原因,贴出来帮助需要的人.我就不翻译了
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=51290&highlight=pointer+targets+differ+signedness
Literal strings in C (like " ") are of type char, not "unsigned char" and not "signed char" but just "char"
(and this is NOT affected by -fsigned-char or -funsigned-char - those only affect variable defintions).
So you should change the prototype of serlcdPrintData so that the first parameter is "char * data" and not "uint8_t * data" (because it isn't)
Cliff 参数传递时,符号不一致(包括指针所指的类型符号不一致)
就会产生警告。
程序严格规范一点,没什么不好。 果然如此啊如果用的是unsigned char*改成 char* ,就没有问题了。 受教了,和13楼情况一样 嗯 遇到类似问题 现在解决了 谢谢各位的解答 嘿嘿 使用14楼的方法果然就没有警告了
页:
[1]