我尝试在visual studio 2013中编译lagecy代码 在代码的某些部分,我有这个部分,它给我编译错误,我不明白:
{
const char* str ="111";
const char* str1 = "TTTTTT";
str -= str1;
...
...
}
\example\example.c(170): error C2297: '-=' : illegal, right operand has type 'const char *'
\example\example.c(170): error C2114: '-=' : pointer on left; needs integral value on right
这里有什么问题?
答案 0 :(得分:1)
这段代码看起来很糟糕。它不是有效的C或C ++。我们只能猜测它的意义。也许你可以用以下内容替换最后一行:
str = (void*)(str - str1);
但不保证它能正常工作。
答案 1 :(得分:0)
我认为错误描述是不言自明的。如果左侧有指针,则右侧不能有const char*
。这种算术只能使用整数。