C is a procedural programming language which means that the program’s state can be changed by executing some procedure. A procedure, in this context, is simply a subroutine or, as they are called in C, a function. Specifically, every C program1 must contain exactly one function called main, where the program starts.