Functions are blocks of code that perform specific tasks. There are two types of functions: predefined/library functions provided by C, and user-defined functions created by the programmer. Functions make programs more modular and reusable. A function definition includes the function header with its name, parameters, and return type. The function body contains the code to execute. Functions are called by their name and actual parameters are passed in. Parameters in the function header are formal parameters that receive the passed in values. Functions can return values to the calling code.