A function is a named, independent section of C code that performs a specific task. Functions allow programmers to break programs into smaller, reusable pieces of code. Functions may receive input parameters, perform some processing, and return an output value. When a function is called, its parameters are pushed onto the stack and the function code is executed. Upon returning, the stack frame is removed and the program counter returns to the calling location. Functions improve code organization and allow code reuse through modular programming.