【发布时间】:2013-07-09 04:17:15
【问题描述】:
我想在 if 语句的括号中声明一个局部变量。 例如。
if((char c = getc(stdin)) == 0x01)//This is not OK with g++.
{
ungetc(c, stdin);
}
我想要的是,看看这个角色是不是我想要的。 通俗地说,我想在 if 的行和 if 的主体中都使用变量(char c),但不在 if。
但是 g++(GCC 4.8.1) 说 在 'char' 之前是预期的主表达式。 我想知道是否有办法做到这一点,因为我不想要类似的东西
char c = getc(stdin);
if(c == 0x01)
{
bla...
}
【问题讨论】:
-
你可以滥用
for循环。 -
如果是关于污染,你总是可以使用新的作用域,或者for循环。
-
最简洁(愚蠢)的解决方案大概是
if ( int c = getc( stdin ) - 1 ) ; else ungetc( c + 1 );。 -
为什么不解除变量定义和初始化的限制?
-
@GManNickG 风水?