【发布时间】:2014-04-16 06:58:19
【问题描述】:
我是 C++ 初学者,想知道这种情况的影响:
PCONSOLE_SCREEN_BUFFER_INFOEX GetConsoleInfo(void) {
WaitForSingleObject(m_hSync); // m_hSync is HANDLE to mutex created using CreateMutex()
return m_pcsbi; // m_pcsbi is of type PCONSOLE_SCREEN_BUFFER_INFOEX
ReleaseMutex(m_hSync); // <== will this line be executed?
}
想知道 [ReleaseMutex()] 会被执行吗?
【问题讨论】:
-
你为什么不确定自己的测试程序?
-
语句in
if (0) { .. }会被执行吗?以同样的方式,return控制程序流程。 (MSVC++ 是否也对此发出警告?) -
无论您使用哪种编译器,都应该有一种方法可以激活警告;在这些警告中,应该有一个告诉您此代码将永远被执行。
-
在现代 C++ 中,我们有一个
<mutex>标头。它有一个漂亮的std::lock_guard,它会在作用域(包括函数作用域)的末尾自动解锁互斥锁
标签: c++ visual-c++ return