我正在将一个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'在哪里?
答案 0 :(得分:5)
您#include
是否正确定义了strsep()
的头文件?如果没有,那么传统的做法就是假设函数返回int
,这可能会导致你的问题。
答案 1 :(得分:5)