#define P99_MACRO_PVAR (   NAME,

Define a variable with NAME that has the type and value of EXPR, where EXPR is of a pointer type.

If QUAL is given it must be a qualifier list that is added to the type EXPR is pointing to.

Other than just redeclaring NAME this macro is safe even if EXPR contains the evaluation of a variable of the same name NAME.

This is achieved by declaring two variables, one with a dummy name that receives EXPR as an initializer (so there can't be a name conflict), and then NAME that is initialized with the first. Any normal optimizer should optimize that auxiliary variable out.

argument 0 must be an identifier
argument 1 maybe evaluated several times for its type but only once for its value

Definition at line 1288 of file p99_for.h.