【发布时间】:2011-10-15 04:26:48
【问题描述】:
我正在将 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 是一个字符指针。这就是 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 返回一个字符指针,这就是 fname 的含义。 strsep 只能返回一个字符指针或 NULL。那么所有这些中的“int”在哪里?
【问题讨论】:
标签: c