假设我有一些c ++代码:
if (error)
goto exit;
...
// size_t i = 0; //error
size_t i;
i = 0;
...
exit:
...
Run Code Online (Sandbox Code Playgroud)
我知道我们不应该使用goto,但仍然为什么
size_t i;
i = 0;
Run Code Online (Sandbox Code Playgroud)
编译而size_t i = 0;不是?
为什么标准强制执行此类行为(由@SingerOfTheFall提及)?
可以转换为块,但不能以初始化绕过声明的方式.从具有自动存储持续时间的局部变量不在范围内的点跳转到其在范围内的点的程序是不正确的,除非该变量具有POD类型(3.9)并且在没有初始化器的情况下声明.
如果我有一个文件描述符(套接字 fd),如何检查该 fd 是否可用于读/写?在我的情况下,客户端已连接到服务器并且我们知道 fd。但是,服务器会断开套接字,有什么线索可以检查吗?