Declaration (computer science)

From Wikipedia, the free encyclopedia

In BCPL family languages such as C++ and Java, a declaration specifies a variable's dimensions, identifier, type, and other aspects. It is used to announce the existence of a variable or function; this is important in many languages (such as C) which require variables to be declared before use. Declarations are generally made in header files, which are meant to be included in other files that reference and use these declarations. The term has a broad range of incompatible meanings in other language families. Unfortunately, it is common for programmers from imperative languages to assume that the definition given in their languages is that given in all fields of computer engineering, hence the misnomer of this article.

By contrast, in BCPL-derived imperative languages, the definition defines what a variable or function actually is. For variables, definitions assign bits to an area of memory that was reserved during the declaration phase. For functions, definitions supply the function body. It is thus clear that while a variable or function may be declared many times, it must only be defined once. It is also clear that a definition is also a declaration.

A declaration is often used in order to be able to access functions or variables defined in different source files, or in a library.

Here are some examples of declarations which are not definitions, in the language C:

extern int example1;
void example2(void);

Here are some examples of definitions, again in C:

int example1 = 5;
void example2(void)
{
 int x = 7;
}

[edit] See also

Languages