A function is a block of code that performs a specific task. It takes input, processes it, and returns output. There are two types of functions: library functions provided by the C language, and user-defined functions created by the programmer. Functions allow programmers to divide a large program into smaller, separate, and reusable parts of code. Functions make code more organized and modular.