Declaration
Declarations tell the compiler that a program element or name exists. A declaration introduces one or more names into a program. Declarations can occur more than once in a program. Therefore, classes, structures, enumerated types, and other user-defined types can be declared for each compilation unit.
Definition
Definitions specify what code or data the name describes. A name must be declared before it can be used.