Since this is a structure initializer, you cannot use it to initialize a structure in a statement other than a declaration.
On my system, it is defined like this:
#define PTHREAD_COND_INITIALIZER {_PTHREAD_COND_SIG_init, {0}}
Deployed and used, we see:
pthread_cond_t p = PTHREAD_COND_INITIALIZER;
I.e
p = PTHREAD_COND_INITIALIZER;
expands to:
p = {_PTHREAD_COND_SIG_init, {0}};
source share