例如:
GetMutexLock( handle ) ;
{
// brace brackets "scope" the lock,
// must close block / remember
// to release the handle.
// similar to C#'s lock construct
}
ReleaseMutexLock( handle ) ;
我在其他地方也见过它:
glBegin( GL_TRIANGLES ) ;
{
glVertex3d( .. ) ;
glVertex3d( .. ) ;
glVertex3d( .. ) ;
} // must remember to glEnd!
glEnd() ;
如果忘记释放互斥锁(假设您记得}和Release()
调用),则会引入编译器错误。
- 这是一种不好的实践吗?为什么?
- 如果不是一种不好的实践,它是否会改变代码的编译方式或使其变慢?