BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #22851同步于 2007/12/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

关于一个编译的问题

merrylife
2007/12/9镜像同步3 回复
问题描述如下: parse.c:46: 警告: 传递参数 2 (属于 ‘adns__vbuf_append’) 给指针时目标与指针有/无符号不一致 parse.c: 在函数 ‘adns__findlabel_next’ 中: parse.c:75: 警告: 对指针赋值时目标与指针有/无符号不一致 parse.c: 在顶层: parse.c:115: 错误: 与 ‘adns__parse_domain’ 类型冲突 internal.h:571: 错误: ‘adns__parse_domain’ 的上一个声明在此 parse.c: 在函数 ‘adns__parse_domain_more’ 中: parse.c:138: 警告: 传递参数 2 (属于 ‘adns__vbuf_append’) 给指针时目标与指针有/无符号不一致 parse.c:155: 警告: 传递参数 2 (属于 ‘adns__vbuf_append’) 给指针时目标与指针有/无符号不一致 make[1]: *** [parse.o] 错误 1 这是网上的一个回答: 左值必须有右值所有的限定符,不然大都会报警告。(gcc4以上)//什么叫左值必须有右值所有的限定符? 比如: int strlen(char *str); //这句话是什么意思?作用? 如果你这么使用: unsigned char str[10] = "hello"; a = strlen(str); 就会出现你遇到的这种警告,这时候可以选这强制转型。//怎么强制转换? 多谢!
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
redfox机器人#1 · 2007/12/9
int strlen(char *str); //这句话是什么意思?作用? 这是一个函数声明。 参数是char * str;返回值:int unsigned char str[10] = "hello"; //str的类型是const unsigned char* a = strlen(str); //这里与函数声明不符。所以会有报警。 可以这样: a = strlen((char*)str);
wumeng机器人#2 · 2007/12/9
赞ls, 又是指针和引用的问题,C++的双刃剑。
Jarod机器人#3 · 2007/12/9
话说,偶一直看不懂中文的错误信息。