错误C2143:语法错误:缺少';'在'类型'之前

时间:2016-06-17 06:39:44

标签: c

现在,此代码我的。该代码属于Chowdren Clickteam编译器。

现在。我一直试图解决这个问题,但开发人员一直很忙。现在,我不知道C,但我对Python了解很多,因为这个文件不是Python。我无法正确修复它。我一直在收到语法错误。

(C:\Users\Scrubby\Desktop\Clickteam Fusion 2.5 Projects\Chowdren Exporter\anaconda-master\Chowdren\base\desktop\tinyfiledialogs.c(178) : error C2143: syntax error : missing ';' before 'type'
C:\Users\Scrubby\Desktop\Clickteam Fusion 2.5 Projects\Chowdren Exporter\anaconda-master\Chowdren\base\desktop\tinyfiledialogs.c(184) : error C2065: 'lOldSubLen' : undeclared identifier) 

现在我正在使用的编译器是这样人们将停止为我的游戏提取我的源代码。现在,这是代码。任何帮助都会很棒。

第178和184行正在破碎。

int lOldSubLen = strlen ( aOldSubStr ) ;
p = pOccurence + lOldSubLen ;

^^^ Thoses正在破碎。

我用两条折线贴了下面的虚空东西。

https://drive.google.com/open?id=0B8W_QnKwKijNN1JPanB3NXg1MU0

OR

static void replaceSubStr ( char const * const aSource ,
                            char const * const aOldSubStr ,
                            char const * const aNewSubStr ,
                            char * const aoDestination )
{
    char const * pOccurence ;
    char const * p ;
    char const * lNewSubStr = "" ;

    if ( ! aSource )
    {
        * aoDestination = '\0' ;
        return ;
    }
    if ( ! aOldSubStr )
    {
        strcpy ( aoDestination , aSource ) ;
        return ;
    }
    if ( aNewSubStr )
    {
        lNewSubStr = aNewSubStr ; 
    }
    p = aSource ;
    int lOldSubLen = strlen ( aOldSubStr ) ;
    * aoDestination = '\0' ;
    while ( ( pOccurence = strstr ( p , aOldSubStr ) ) != NULL )
    {
        strncat ( aoDestination , p , pOccurence - p ) ;
        strcat ( aoDestination , lNewSubStr ) ;
        p = pOccurence + lOldSubLen ;
    }
    strcat ( aoDestination , p ) ;
}

1 个答案:

答案 0 :(得分:5)

看起来您使用的旧版Visual C不支持C99。您需要使用更现代的编译器,无论是当前/最新版本的Visual C,还是理想的gcc,clang或任何符合C99标准的现代编译器。

或者,如果你因为旧版本的Visual C而遇到一些不幸的原因,那么你可以修复所有这些变量定义以使它们符合C89(即将它们移动到封闭块的开头)。

您看到的具体问题是变量是在代码块的中间而不是在开始时声明的 - 这是自C99以来允许的(以及之前,作为gcc等编译器中的扩展)。微软最近才赶上(或多或少)C99。

修复您遇到问题的特定功能:

static void replaceSubStr ( char const * const aSource ,
                            char const * const aOldSubStr ,
                            char const * const aNewSubStr ,
                            char * const aoDestination )
{
    char const * pOccurence ;
    char const * p ;
    char const * lNewSubStr = "" ;
    int lOldSubLen ;  // <<< move variable definition to here

    if ( ! aSource )
    {
        * aoDestination = '\0' ;
        return ;
    }
    if ( ! aOldSubStr )
    {
        strcpy ( aoDestination , aSource ) ;
        return ;
    }
    if ( aNewSubStr )
    {
        lNewSubStr = aNewSubStr ; 
    }
    p = aSource ;
    lOldSubLen = strlen ( aOldSubStr ) ;  // <<< fixed line, without variable definition
    * aoDestination = '\0' ;
    while ( ( pOccurence = strstr ( p , aOldSubStr ) ) != NULL )
    {
        strncat ( aoDestination , p , pOccurence - p ) ;
        strcat ( aoDestination , lNewSubStr ) ;
        p = pOccurence + lOldSubLen ;
    }
    strcat ( aoDestination , p ) ;
}