繁体   English   中英

错误C2143:语法错误:缺少';' 转移指针前的'type'之前

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM