A function is a self-contained block of statements that perform a coherent task of some kind. Every C program can be thought of as a collection of these functions