C has a concept of 'data types' which are used to define a variable before its use. The definition of a variable will assign storage for the variable and define the type of data that will be held in the location.
The value of a variable can be changed any time.
C has the following basic built-in datatypes.
-
int
-
float
-
double
-
char
Please note that there is not a boolean data type. C does not have the traditional view about logical comparison, but thats another story.
int - data type
int is used to define integer numbers.
{ int Count; Count = 5; }
|
float - data type
float is used to define floating point numbers.
{ float Miles; Miles = 5.6; }
|
double - data type
double is used to define BIG floating point numbers. It reserves twice the storage for the number. On PCs this is likely to be 8 bytes.
{ double Atoms; Atoms = 2500000; }
|
char - data type
char defines characters.
{ char Letter; Letter = 'x'; }
|
Modifiers
The data types explained above have the following modifiers.
- short
- long
- signed
- unsigned
The modifiers define the amount of storage allocated to the variable. The amount of storage allocated is not cast in stone. ANSI has the following rules:
short int <= int <= long int float <= double <= long double
|
What this means is that a 'short int' should assign less than or the same amount of storage as an 'int' and the 'int' should be less or the same bytes than a 'long int'. What this means in the real world is:
| Type | Bytes | Range |
| short int | 2 | -32,768 -> +32,767(32kb) |
| unsigned short int | 2 | 0 -> +65,535(64Kb) |
| unsigned int | 4 | 0 -> +4,294,967,295(4Gb) |
| int | 4 | -2,147,483,648 -> +2,147,483,647(2Gb) |
| long int | 4 | -2,147,483,648 -> +2,147,483,647(2Gb) |
| signed char | 1 | -128 -> +127 |
| unsigned char | 1 | 0 -> +255 |
| float | 4 | |
| double | 8 | |
| long double |
12 |