[英]C compiler: “Types 'char *' and 'int' are not assignment-compatible” - but there's no int?
我正在将一个FOSS包移植到HP-UX。 我有一个编译器警告,我无法弄清楚。 我应该注意到我正在使用HP-UX捆绑的免费/ usr / bin / cc,而不是附加购买的编译器,以使包尽可能广泛使用。
编译(只是没有标志的cc)说:
Warning 942: "grep.c", line 288 # Types 'char *' and 'int' are not assignment-compatible.
if ((fname = strsep(&lp, ":")) == NULL)
^^^^^^^^^^^^^^^^
声明该函数中的fname:
char *fname, *line, *lp, *ln;
所以fname是一个char ptr。 这就是strsep()返回的内容:
char *strsep(char **stringp, const char *delim) {
strsep包含在OpenBSD中: http : //www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/string/strsep.c? rev = 1.6; content-type = text%2Fplain
所以...... strsep返回一个char指针,这就是fname。 strsep只能返回一个字符指针或NULL。 那么所有这些中的'int'在哪里?
你是否#include
一个正确定义strsep()
的头文件? 如果没有,那么传统的做法就是假设函数返回int
,这可能会导致你的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.