Arithmetic Types
The arithmetic type specifiers are built up from the following keywords: void
, char
, int
, float
and double
,
together with the prefixes short
, long
, signed
and unsigned
.
From these keywords you can build both integral and floating-point types.
Integral Types
The types char
and int
, together with their variants, are considered to be integral data types. Variants are created by using one of the prefix modifiers short
, long
, signed
and unsigned
.
In the table below is an overview of the integral types – keywords in parentheses can be (and often are) omitted.
The modifiers signed
and unsigned
can be applied to both char
and int
. In the absence of the unsigned
prefix, signed
is automatically assumed for integral types. The only exception is char
, which is unsigned
by default. The keywords signed
and unsigned
, when used on their own, mean signed int
and unsigned int
, respectively.
The modifiers short
and long
can only be applied to int
.
The keywords short
and long
, used on their own, mean short int
and long int
, respectively.
Type | Size in bytes | Range |
---|---|---|
bit | 1–bit | 0 or 1 |
sbit | 1–bit | 0 or 1 |
(unsigned) char | 1 | 0 .. 255 |
signed char | 1 | - 128 .. 127 |
(signed) short (int) | 1 | - 128 .. 127 |
unsigned short (int) | 1 | 0 .. 255 |
(signed) int | 2 | -32768 .. 32767 |
unsigned (int) | 2 | 0 .. 65535 |
(signed) long (int) | 4 | -2147483648 .. 2147483647 |
unsigned long (int) | 4 | 0 .. 4294967295 |
Floating-point Types
The types float
and double
, together with the long double
variant, are considered to be floating-point types. The mikroC PRO for dsPIC30/33 and PIC24’s implementation of an ANSI Standard considers all three to be the same type.
Floating point in the mikroC PRO for dsPIC30/33 and PIC24 is implemented using the Microchip AN575 32-bit format (IEEE 754 compliant).
An overview of the floating-point types is shown in the table below:
Type | Size in bytes | Range |
---|---|---|
float | 4 | -1.5 * 1045 .. +3.4 * 1038 |
double | 4 | -1.5 * 1045 .. +3.4 * 1038 |
long double | 4 | -1.5 * 1045 .. +3.4 * 1038 |
What do you think about this topic ? Send us feedback!