This document discusses different types of functions in C language. It explains that a C program consists of one or more functions, including at least one main function. There are two types of functions: library functions which are pre-defined, and user-defined functions which are created by the user. User-defined functions can have parameters and return values or not. Functions are used to divide a large program into subprograms for reusability and readability. Parameters can be passed by value or by reference. Recursive functions are functions that call themselves.