A preprocessor directive that is not specified by the ISO standard. Pragmas often control actions of the compiler and linker. A pragma always begins with a number sign (#).
Because you have to: any executable statement in C must belong to one function or another; there mustn't be executable statements outside of functions.and it also reduces the length of the program