[Main]
Title=Parentheses operators ('(...)')
Index=(, )

[Top]
Parentheses operators do the following:
<UL>
<LI>group expressions (when necessary to change precedence);</LI>
<LI>isolate conditional expressions;</LI>
<LI>indicate function calls and function parameters.</LI>
</UL>
Note that parentheses are also the part of the <A HREF="$$LINK(cast)">TypeCast</A> operator.
<BR><BR>
When used as function-call operators, parentheses use the following syntax:
<PRE><I>expr</I> (<I>arg-expression-list</I>)
</PRE>
This is a call to the function given by the <I>expr</I>, which can be either
the function name, or an expression which evaluates to a pointer-to-function
type. In the second case, the function call is in fact translated to
<PRE>(* <I>expr</I>) (<I>arg-expression-list</I>)
</PRE>
<I>arg-expression-list</I> is a comma-delimited list of expressions of
any type representing the actual (or real) function arguments. The value of the
function call expression, if it has a value, is determined by the
<CODE>return</CODE> statement in the function definition.
<BR><BR>
<I>arg-expression-list</I> may even be empty, which is necessary when you
need to call an argument-less function:
<PRE><I>expr</I> ()
</PRE>
Note that every function name, if used alone (without the parentheses operator), is
automatically interpreted as a pointer to the function.
<BR><BR>
When used as a punctuator, parentheses are used for creating function types (see
<A HREF="$$LINK(asterisk)">asterisk</A> for more info).
