我在使用 cc 编译的长文件中有一个 C 代码。但是当我尝试在 gcc 上编译时,它给出了错误。我在小程序中使用了那个特定的代码,并尝试在 cc 上编译,但它在那里失败了。
这里是来源:
#include <stdio.h>
int main (int argc, char **argv)
{
char unsigned FileName[100];
char test[100];
FileName[strstr(FileName,test) - FileName] = 0;
return 0;
}
此行导致问题:
FileName[strstr(FileName,test) - FileName] = 0;
CC上的错误是:
"foo.c", line 10: operands have incompatible types:
int "-" pointer to unsigned char
在 gcc 上是:
foo.c:10: error: invalid operands to binary - Both are same.
但是当我在 CC 上编译原始文件时,它会编译并给出警告。像这样:
"dbtprc.c", line 643: warning: argument #1 is incompatible with prototype:
prototype: pointer to const char : "/usr/include/iso/string_iso.h", line 133
argument : pointer to unsigned char
"dbtprc.c", line 643: warning: improper pointer subtraction
你能帮忙解释一下为什么这里会给出警告“不正确的指针减法”和示例程序显示错误吗?