CX_LIMITED_ RANGE FP_CONTRACT 
| Name | Description | Notes | Source | Availability | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
CX_ | 
            Who knows what this does? | P | <complex.h> | 
            C99 | C11 | ||||||
FP_ | 
            Allow expressions to be contracted | P | <math.h> | 
            C99 | C11 | ||||||
An expression indicates how a collection of
      values are to be combined to perform a computation. When an
      expression is evaluated, the collection of values
      is determined, and the computation is performed, yielding a
      new value, the result. This value has a specific type, and a given expression
      will always yield values of the same type, hence we can say
      that the expression also has that type. It can also be given
      to sizeof to give the size of the type of
      the expression without actually evaluating it.
One of the simplest expressions is a constant. When
      evaluated, it yields that value, and its type is the type of
      that value. For example, 6 is a
      constant of type int, meaning
      and yielding the numeric value 6; 6L
      is a constant of type long, also
      meaning and yielding the numeric value 6. More complex
      expressions are possible by recursively combining one or more
      simpler expressions with one or more operators.
      The expressions combined with an operator are its
      operands. For example, 6 +
      4 is an expression using the binary operator
      + to add its two operands 6 and 4 together.
An expression may refer to an object, meaning
      that, upon evaluation, its value should be retrieved and used
      in place of the reference. For example, 6 +
      x is an expression to compute the sum of the current
      value of the variable x and 6 (without
      changing x).
Most importantly, C expressions can have side-effects — the only way
      to change the value stored in an object, or perform some I/O.
      x = 6 is an expression which assigns
      the value 6 to the variable x as a
      side-effect.
- expression
 assignment-expressionexpression , assignment-expression- assignment-expression
 conditional-expressionunary-expression assignment-operator assignment-expression- assignment-operator
 =*=/=%=+=-=<<=>>=&=^=|=- conditional-expression
 logical-OR-expressionlogical-OR-expression ? expression : conditional-expression- logical-OR-expression
 logical-AND-expressionlogical-OR-expression || logical-AND-expression- logical-AND-expression
 inclusive-OR-expressionlogical-AND-expression && inclusive-OR-expression- inclusive-OR-expression
 exclusive-OR-expressioninclusive-OR-expression | exclusive-OR-expression- exclusive-OR-expression
 AND-expressionexclusive-OR-expression ^ AND-expression- AND-expression
 equality-expressionAND-expression & equality-expression- equality-expression
 relational-expressionequality-expression == relational-expressionequality-expression != relational-expression- relational-expression
 shift-expressionrelational-expression < shift-expressionrelational-expression > shift-expressionrelational-expression <= shift-expressionrelational-expression >= shift-expression- shift-expression
 additive-expressionshift-expression << additive-expressionshift-expression >> additive-expression- additive-expression
 multiplicative-expressionadditive-expression + multiplicative-expressionadditive-expression - multiplicative-expression- multiplicative-expression
 cast-expressionmultiplicative-expression * cast-expressionmultiplicative-expression / cast-expressionmultiplicative-expression % cast-expression- cast-expression
 unary-expression( type-name ) cast-expression- unary-expression
 postfix-expression- 
          
++ unary-expression - 
          
-- unary-expression unary-operator cast-expressionsizeof unary-expressionsizeof ( type-name )_Alignof ( type-name )- unary-operator
 &*+-~!- postfix-expression
 primary-expression- 
          
postfix-expression [ expression ] - 
          
postfix-expression ( argument-expression-listopt ) - 
          
postfix-expression . identifierStructures and Unions - 
          
postfix-expression -> identifierStructures and Unions - 
          
postfix-expression ++ - 
          
postfix-expression -- - 
          
( type-name ) { initializer-list }since C99; Structures - 
          
( type-name ) { initializer-list , }since C99; Structures - primary-expression
 identifierconstantstring-literal( expression )- 
          
generic-selectionsince C11 
CX_LIMITED_RANGE  ]
      FP_CONTRACT ]