有时您会遇到带有额外大括号的代码,这与范围无关,只是为了可读性和避免错误。
例如:
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()
调用)。
- 这是一个不好的做法吗?为什么?
- 如果不是,它会改变代码的编译方式或使其变慢吗?