我一直在寻找用于定义宏的GCC文档,它看起来像我想要的是不可能的,但我想如果是,有人在这里会知道.
我想要做的是定义这个宏:
synchronized(x) {
do_thing();
}
Run Code Online (Sandbox Code Playgroud)
其中扩展为:
{
pthread_mutex_lock(&x);
do_thing();
pthread_mutex_unlock(&x);
}
Run Code Online (Sandbox Code Playgroud)
在C++中,我可以创建一个SynchronizedBlock在其构造函数中获取锁定并在析构函数中解锁的对象,但我不知道如何在C中执行此操作.
我意识到我可以在表单中使用函数指针synchronized(x, &myfunction);,但我的目标是使一些C代码看起来尽可能像Java一样.是的,我知道这是邪恶的.