User manual
mikroC PRO for dsPIC
MikroElektronika
225
Declarations
A declaration introduces one or several names to a program – it informs the compiler what the name represents, what
its type is, what operations are allowed with it, etc. This section reviews concepts related to declarations: declarations,
denitions, declaration speciers, 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 Denitions
Dening declarations, also known as denitions, beside introducing the name of an object, also establish the creation
(where and when) of an object; that is, the allocation of physical memory and its possible initialization. Referencing
declarations, or just declarations, simply make their identiers and types known to the compiler.
Here is an overview. Declaration is also a denition, except if:
- it declares a function without specifying its body
- it has the extern specier, and has no initializator or body (in case of func.)
- it is the typedef declaration
There can be many referencing declarations for the same identier, especially in a multile program, but only one
dening declaration for that identier is allowed.
For example:
/* Here is a nondening declaration of function max; */
/* it merely informs compiler that max is a function */
int max();
/* Here is a denition of function max: */
int max(int x, int y) {
return (x >= y) ? x : y;
}
/* Denition of variable i: */
int i;
/* Following line is an error, i is already dened! */
int i;