Datasheet

DECLARATIONS
A declaration introduces one or several names to a program – it informs the compil-
er what the name represents, what its type is, what operations are allowed with it,
etc. This section reviews concepts related to declarations: declarations, definitions,
declaration specifiers, and initialization.
The range of objects that can be declared includes:
- Variables
- Constants
- Functions
- Types
- Structure, union, and enumeration tags
- Structure members
- Union members
- Arrays of other types
- Statement labels
- Preprocessor macros
Declarations and Definitions
Defining declarations, also known as definitions, beside introducing the name of an
object, also establish the creation (where and when) of an object; that is, the alloca-
tion of physical memory and its possible initialization. Referencing declarations, or
just declarations, simply make their identifiers and types known to the compiler.
Here is an overview. Declaration is also a definition, except if:
- it declares a function without specifying its body
- it has the
extern specifier, and has no initializator or body (in case of func.)
- it is the typedef declaration
There can be many referencing declarations for the same identifier, especially in a
multifile program, but only one defining declaration for that identifier is allowed.
For example:
/* Here is a nondefining declaration of function max; */
/* it merely informs compiler that max is a function */
int max();
/* Here is a definition of function max: */
int max(int x, int y) {
return (x >= y) ? x : y;
}
178
MIKROELEKTRONIKA - SOFTWARE AND HARDWARE SOLUTIONS FOR EMBEDDED WORLD
Language Reference
mikroC PRO for AVR
CHAPTER 5