This document discusses functions in C including syntax, declaration, definition, calling functions, actual and formal parameters, call by value, call by reference, and the difference between call by value and call by reference. It explains that functions allow breaking programs into smaller, reusable pieces of code. Parameters passed by value are copied so changes within the function don't affect the original variable, while parameters passed by reference use the address of the original variable so any changes made within the function also change the variable outside the function.