The elements of a function definition are as follows:
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 C++, you can use attributes to
modify the properties of functions. They are described in Function attributes.
Function definitions take the following form:
Function definition syntax >>-+-------------------------+--+--------------------+----------> '-storage_class_specifier-' '-function_specifier-' >--+-----------------------+--function_declarator--{------------> '-return_type_specifier-' >--function body--}--------------------------------------------><
Function definition syntax >>-+-------------------------+--+--------------------+----------> '-storage_class_specifier-' '-function_specifier-' >--return_type_specifier--function_declarator-------------------> >--+----------------------------+--{--+-function body-+--}----->< '-:--constructor-initializer-' '-try-block-----'