Definitions
Definitions and declarations look much the same in C; it can also be difficult to tell the difference between initialization and assignment because they use the same symbol. Here I am just trying to visually lay out the various types of statements in order to show clearly what their differences and relationships are.
C/C++
| Variable | Function | |||
|---|---|---|---|---|
| Type | Global | Local | (Global) | |
| Declaration | extern int x; |
extern int fn(); | ||
| Definition | int x; |
int fn() { ... } | ||
| Initialization | int x = 1; | |||
| Assignment | x = 1; | |||