cat3
# define cat3t(a,b,c) cat3(a,b,c)
# define cat3t(a,b,c) cat3(a,c,b)
# define vccast(name) (cat3(__,name,x).d)
const union { uint32_t l[2]; double d; } cat3(__,name,x) = { \
static const union { uint32_t l[2]; double d; } cat3(__,name,x) = { \
extern const union { uint32_t l[2]; double d; } cat3(__,name,x);