gpt4 book ai didi

c - 错误 C2143 : syntax error : missing ';' before 'type'

转载 作者:行者123 更新时间:2023-11-30 21:33:04 24 4
gpt4 key购买 nike

现在,这段代码不是我的。该代码属于 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 ;

^^^ 这些是正在损坏的。

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

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

或者

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 ) ;
}

最佳答案

您似乎使用的是不支持 C99 的较旧版本的 Visual C。您需要使用更现代的编译器,可以是当前/最新版本的 Visual C,也可以是理想的 gcc、clang 或任何现代 C99 兼容编译器。

或者,如果您由于某些不幸的原因而坚持使用旧版本的 Visual C,那么您可以修复所有此类变量定义,使它们符合 C89 标准(即将它们移动到封闭 block 的开头)。

您看到的具体问题是变量是在代码块的中间声明的,而不是在开头声明的 - 自 C99 以来就允许这样做(以及更早的版本,作为 gcc 等编译器的扩展)。 Microsoft 最近才(或多或少) catch 了 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 ) ;
}

关于c - 错误 C2143 : syntax error : missing ';' before 'type' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37874759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com