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










