Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1 User Manual
Product codes
SW006021-1
MPLAB
®
XC8 C Compiler User’s Guide
DS52053B-page 144
2012 Microchip Technology Inc.
Signed values are stored as a two’s complement integer value.
The range of values capable of being held by these types is summarized in Table 5-2
The symbols in this table are preprocessor macros which are available after including
<limits.h>
The symbols in this table are preprocessor macros which are available after including
<limits.h>
in your source code. As the size of data types are not fully specified by
the ANSI Standard, these macros allow for more portable code which can check the
limits of the range of values held by the type on this implementation.
limits of the range of values held by the type on this implementation.
The macros associated with the short long type are non-standard macros available
in this implementation; those associated with the long long types are defined by the
C99 Standard.
in this implementation; those associated with the long long types are defined by the
C99 Standard.
Macros are also available in <stdint.h> which define values associated with
fixed-width types.
fixed-width types.
When specifying a signed or unsigned short int, short long int, long int
or long long int type, the keyword int may be omitted. Thus a variable declared
as short will contain a signed short int and a variable declared as unsigned
short
or long long int type, the keyword int may be omitted. Thus a variable declared
as short will contain a signed short int and a variable declared as unsigned
short
will contain an unsigned short int.
It is a common misconception that the C char types are intended purely for ASCII char-
acter manipulation. However, the C language makes no guarantee that the default
character representation is even ASCII. (This implementation does use ASCII as the
character representation.) The char types are the smallest of the multi-bit integer
sizes, and behave in all respects like integers. The reason for the name “char” is his-
torical and does not mean that char can only be used to represent characters. It is pos-
sible to freely mix char values with values of other types in C expressions. With the
MPLAB XC8 C Compiler, the char types are used for a number of purposes – as 8-bit
integers, as storage for ASCII characters, and for access to I/O locations.
acter manipulation. However, the C language makes no guarantee that the default
character representation is even ASCII. (This implementation does use ASCII as the
character representation.) The char types are the smallest of the multi-bit integer
sizes, and behave in all respects like integers. The reason for the name “char” is his-
torical and does not mean that char can only be used to represent characters. It is pos-
sible to freely mix char values with values of other types in C expressions. With the
MPLAB XC8 C Compiler, the char types are used for a number of purposes – as 8-bit
integers, as storage for ASCII characters, and for access to I/O locations.
TABLE 5-2:
RANGES OF INTEGER TYPE VALUES
Symbol
Meaning
Value
CHAR_BIT
Bits per char
8
CHAR_MAX
Max. value of a char
127
CHAR_MIN
Min. value of a char
-128
SCHAR_MAX
Max. value of a signed char
127
SCHAR_MIN
Min. value of a signed char
-128
UCHAR_MAX
Max. value of an unsigned char
255
SHRT_MAX
Max. value of a short
32767
SHRT_MIN
Min. value of a short
-32768
USHRT_MAX
Max. value of an unsigned short
65535
INT_MAX
Max. value of an int
32767
INT_MIN
Min. value of a int
-32768
UINT_MAX
Max. value of an unsigned int
65535
SHRTLONG_MAX
Max. value of a short long
8388607
SHRTLONG_MIN
Min. value of a short long
-8388608
USHRTLONG_MAX
Max. value of an unsigned short long 16777215
LONG_MAX
Max. value of a long
2147483647
LONG_MIN
Min. value of a long
-2147483648
ULONG_MAX
Max. value of an unsigned long
4294967295
LLONG_MAX
Max. value of a long long
2147483647
LLONG_MIN
Min. value of a long long
-2147483648
ULLONG_MAX
Max. value of an unsigned long long
4294967295