6.1 Variable types

-------------------

There are seven types of variables (named memory areas) in C--:

byte, word, dword, char, int, long, float.

The table below lists the size and range of values for each type.

NAME |size | VALUE RANGE | VALUE RANGE

type |in byte| range in decimal notation| range in hex notation

------------------------------------------------------------------------

byte | 1 | 0 to 255 | 0x00 to 0xFF

word | 2 | 0 to 65535 | 0x0000 to 0xFFFF

dword | 4 | 0 to 4294967295| 0x00000000 to 0xFFFFFFFF

char | 1 | -128 to 127 | 0x80 to 0x7F

int | 2 | -32768 to 32767 | 0x8000 to 0x7FFF

long | 4 | -2147483648 to 2147483647| 0x80000000 to 0x7FFFFFFF

float | 4 | -3,37E38 to +3,37E38 | 0xFF7FFFFF to 0x7FFFFFFF

Note: when working with types 'float', 'dword' and 'long', 32-bit

integer commands are used, which requires at least a 386.

For compatibility with C standards, we have added the new reserved

words 'short', 'signed', and 'unsigned'. For type 'int' in the 32-bit mode,

bit-size has changed. Below is a table of all variants of the new data

types:

---------------------------------------------------------

| full type |possible type |old analogs |

---------------------------------------------------------

|signed char |char | char |

|signed int |signed, int | int/long |

|signed short int |short, signed short | int |

|signed long int |long, signed long | long |

|unsigned char |--- | byte |

|unsigned int |unsigned | word/dword |

|unsigned short int|unsigned short | word |

|unsigned long int |unsigned long | dword |

---------------------------------------------------------

The old types 'byte', 'word' and 'dword' are still supported and have

the same functional value as before. The only changes are to type 'int',

which like 'unsigned int' is 16-bit in 16-bit mode but 32-bit in 32-bit

mode. These properties appear at first glance rather confusing, but there

is a gain when this type is used in library files, which can be used for

compiling both 16-bit and 32-bit programs.