As we saw before, they are prototyped , by stating return type and argument types. Argument names aren't required in a declaration.
Functions can return a value.
To return multiple values, you can create a struct for the return value, or use pointers or references as arguments, changing variables in the calling environment. The expression following the return keyword is the value returned, and the function exits there. A block is a single statement, or several statements in curly braces. The usual precedence rules apply. Several bit shift operators, perfect for writing operating systems.