在gatomic.c
版的GLib中,有几个函数声明如下:
gboolean
(g_atomic_int_compare_and_exchange_full) (gint *atomic,
gint oldval,
gint newval,
gint *preval)
{
return g_atomic_int_compare_and_exchange_full (atomic, oldval, newval, preval);
}
有人能解释一下这个代码到底是做什么的吗?我对这里的几件事感到困惑:
-
函数名称
g_atomic_int_compare_and_exchange_full
位于 圆括号.这有什么意义呢? -
函数体显然只包含对函数本身的调用,因此这将永远运行并导致堆栈 溢出(双关语).
我完全不能理解这个函数声明.这到底是怎么回事?