P99

◆ P99_TP_XCHG

#define P99_TP_XCHG (   TP,
  VAL 
)
Value:
P99_MACRO_VAR(p00_tp, (TP)); \
/* ensure that the pointers that are converted to the */ \
/* base type, and that the return can't be used as lvalue */ \
register P99_TP_TYPE(p00_tp)* const p00_val = (VAL); \
register P99_TP_TYPE(p00_tp)* const p00_r \
= p00_tp ? p00_tp_i2p(p99_tp_xchg(&p00_tp->p00_tp, p00_val)) : 0; \
p00_r; \
})
p99_extension
#define p99_extension
Mark an expression as using a compiler extension.
Definition: p99_compiler.h:210
P99_TP_TYPE
#define P99_TP_TYPE(TP)