Otherwise, each source file that includes the header will create a new definition, which are usually merged together by the linker. Multiple definitions of an object is not allowed in ISO C.