In C/C++ a function accepts 0 or more arguments and performs work with them. It often, but not always, returns a value. Unlike inline code, a function can be invoked from any point in the program. When it has done it's job, execution will resume from the point at which it was called. Consider y = sin (x). sin is the function, x is the argument, and y is the return. The work the function does is to calculate the sin of the argument and return the result.