我曾经看到一段代码如下,
/** Starts a synchronized block
*
* This macro starts a block synchronized on its argument x
* Note that the synchronized block defines a scope (i.e. { })
* All variables declared in it will live inside this block only
*/
#define SYNCHRONIZE_ON(x) { \
const abcd::LockBase & __lock = \
abcd::MakeLock(x); __lock;
/** Ends a synchronized block */
#define END_SYNCHRONIZE }
和SYNCHRONIZE_ON
一起END_SYNCHRONIZE
用于在对象上同步。宏在其块中SYNCHRONIZE_ON
定义了一个变量。____lock
这里的问题是:句子__lock;
(在 之后abcd::MakeLock(x);
)的用途是什么?请注意,这句话只包含变量名。