У меня есть код C в длинном файле, который скомпилирован с помощью cc.Но когда я пытался скомпилировать на 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
Не могли бы вы помочь, почему здесь выдается предупреждение «неправильное вычитание указателя», а в примере программы показывается ошибка?