gpt4 book ai didi

c - 是 for ({statements;}; condition; {statements;}) 合法的 C 吗?

转载 作者:太空狗 更新时间:2023-10-29 14:49:38 25 4
gpt4 key购买 nike

尽管样式很糟糕,但在 C 中有一个带大括号的 for 循环是否合法?像这样:

char *a = "a ";
char *b = "b ";

for ( { int aComesFirst = 1;
char *first = a;
char *second = b;
};
aComesFirst >= 0;
{ aComesFirst--;
swap(first, second);
} )
{
printf("%s%s\n", first, second);
}

如果这些方面的事情是可能的,我应该在第一个大括号后放一个分号,还是会添加一个空语句?

我确实意识到,将 char* 声明移到 for 循环之外,将 swap 声明移到循环内部的末尾,在风格上更好。但是样式不是这个问题的重点,我只是想知道是否可以在括号内放置大括号。

最佳答案

我之前已经回答过这个问题……通过添加本地 struct 类型,这可以很容易地在 C 或 C++ 中合法化。不过,它的风格通常很差。

char *a = "a ";
char *b = "b ";

for ( struct loopy {
int aComesFirst;
char *first;
char *second;
} l = { 1, a, b }; /* define, initialize structure object */

l.aComesFirst >= 0; /* loop condition */

l.aComesFirst--, /* loop advance */
swap(l.first, l.second)
)
{
printf("%s%s\n", l.first, l.second);
}

关于c - 是 for ({statements;}; condition; {statements;}) 合法的 C 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852019/

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