Statements in Expressions

When the GCC extensions setting is on, expressions in function bodies may contain statements and definitions. To use a statement or declaration in an expression, enclose it within braces. The last item in the brace-enclosed expression gives the expression its value. Using statements and definitions in expressions shows an example.

Listing 1. Using statements and definitions in expressions
#define POW2(n) ({ int i,r; for(r=1,i=n; i>0; --i) r *= 2; r;}) 


int main() 
{ 
    return POW2(4); 

}