返回信息流问题描述如下:
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);
就会出现你遇到的这种警告,这时候可以选这强制转型。//怎么强制转换?
多谢!
这是一条镜像帖。来源:北邮人论坛 / soft-design / #22851同步于 2007/12/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
关于一个编译的问题
merrylife
2007/12/9镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
int strlen(char *str); //这句话是什么意思?作用?
这是一个函数声明。
参数是char * str;返回值:int
unsigned char str[10] = "hello"; //str的类型是const unsigned char*
a = strlen(str); //这里与函数声明不符。所以会有报警。
可以这样:
a = strlen((char*)str);