P99

◆ P99_AVALUE

#define P99_AVALUE (   X,
  ... 
)

For a pointer or array expression X return the underlying array.

Precondition
This requires that X is either a pointer or array, or in other words that (X)[0] is a valid expression.
This requires that the base type of X is one of the types listed in the arguments.
Returns
If X is a pointer to of one of the types listed in the argument list, X[0] is reinterpreted as a one element array and that array is returned. Otherwise X is an lvalue of array type and this object is returned.
Remarks
argument 0 maybe evaluated several times for its type but only once for its value
argument 1 should correspond to a type that is not a VLA.
argument 2 should correspond to a type that is not a VLA.
argument 3 should correspond to a type that is not a VLA.

Definition at line 1094 of file p99_generic.h.