[英]error C2143: syntax error : missing ';' before 'type' when transferring pointer
当我尝试将指针转移到另一个时,我对以下错误感到困惑。 有没有人可以告诉我为什么会发生这种错误?
它说
error C2143: syntax error : missing ';' before 'type'
传输指针时如下:
void compressString(char * pStr)
{
char * pInputStr ;
// ...
pInputStr = pStr; //**I can not understand why this sentence is error.**
// ...
}
但是这个可以工作:
void compressString(char * pStr)
{
char * pInputStr = pStr; //No error will be alerted.
// ...
}
这是更完整的功能版本:
void compressString(char * pStr)
{
char * pInputStr = pStr;
char * pCompressedStr = NULL;
int totalRepeatChar;
int currentPointerPosition;
int lenCompressedStr = 0;
char testTemp;
int i = 0;
pInputStr = pStr; //I can not understand why this sentence is error.
char arrIntCoverted[DIGITALUINTNUM+1] = {'\0'};
// And then lots more code in the function
}
您得到的错误是因为您混合了声明和可执行语句,而Visual Studio使用旧的C语言而您无法做到这一点。
这是一个可执行的声明:
pInputStr = pStr; //I can not understand why this sentence is error.
你得到的错误实际上并不在那一行,而是在下一行,这是一个声明:
char arrIntCoverted[DIGITALUINTNUM+1] = {'\0'};
在多行注释中,“/”和“*”应该在一起。 在您的情况下,您在评论结束时有新行。
校验:
pInputStr = pStr; //**I can not understand why this sentence is error.**
// ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.