A declaration establishes the names and characteristics of data objects and functions used in a program. A definition allocates storage for data objects or specifies the body for a function, and associates an identifier with that object or function. When you declare or define a type, no storage is allocated.
In diverse ways, declarations determine the interrelated attributes of an object: storage class, type, scope, visibility, storage duration, and linkage.
Related References