Function definitions
The elements of a function definition are as follows:
- Function storage class specifiers, which specify linkage
- Function return type specifiers, which specify the data type of a value to be returned
- Function specifiers, which specify additional properties for functions
- Function declarators, which include function identifiers as well as lists of parameters
- The function body, which is a braces-enclosed series of statements representing the actions that the function performs
Constructor-initializers, which are used only in
constructor functions declared in classes; they are described in Constructors (C++ only).- Try blocks, which are used in class functions; they
are described in try blocks (C++ only).

In addition,
for compatibility with GNU C and C++, XL C/C++ allows
you to use attributes to modify the properties of functions.
They are described in Function attributes (IBM extension).
Function definitions take the following form:
Function definition syntax (C only) >>-+-------------------------+--+--------------------+----------> '-storage_class_specifier-' '-function_specifier-' >--+-----------------------+--function_declarator--{------------> '-return_type_specifier-' >--function body--}--------------------------------------------><
Function definition syntax (C++ only) >>-+-------------------------+--+--------------------+----------> '-storage_class_specifier-' '-function_specifier-' >--return_type_specifier--function_declarator-------------------> >--+-+----------------------------+-{--function body--}-+------>< | '-:--constructor-initializer-' | +-try-block------------------------------------------+ | (1) | +- = default;----------------------------------------+ | (2) | '- = delete;-----------------------------------------'
Notes:
- This syntax is valid only in the C++11 standard.
- This syntax is valid only in the C++11 standard.

Note: When function_declarator incorporates
a trailing return type, return_type_specifer must
be auto. For more information about trailing return
type, see Trailing return type (C++11).




