1
1
符合C或C++编译器的任何标准都允许这样做。即使是老式的(iso c99之前的)C编译器也会允许这样做,但这仅仅是因为变量声明位于块/复合语句的开头(由
注意下面的
所以在ANSIC89中,正是大括号起了作用。 |
2
3
开关主体只是一个普通语句(在您的例子中是一个复合语句,看起来像
这种转换理念被滥用 Duffs device .
很多人都不知道
|
3
0
严格地说,你提出的案件
C允许跨越任何局部变量的定义(算术,
C++只允许那些没有构造函数或析构函数的数据类型,通常称为POD。
所以如果你有一个类型
在任何情况下,所有这些都很容易导致未初始化的变量,所以最好不要这样做,如果您可以避免它。 |
4
-1
我认为C99允许在块内任意位置声明变量(几乎),这样行为就应该被认为是合法的。我看不出任何实际的风险,因为这只是一个声明。 |
Legofan431 · Lua:本地功能范围 6 年前 |
MJ007 · 使用Headless JS[关闭]响应本地通知 7 年前 |
Kevin · 从公用文件夹中获取本地JSON文件 7 年前 |
user7820948 · 安装WAMP会删除您当前的本地数据库吗? 7 年前 |
Blocko · HTML从本地SQL文件加载数据 8 年前 |