www.delorie.com/gnu/docs/glibc/libc_682.html | search |
Buy the book! | |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Suppose you need to store an integer value which can range from zero to one million. Which is the smallest type you can use? There is no general rule; it depends on the C compiler and target machine. You can use the `MIN' and `MAX' macros in `limits.h' to determine which type will work.
Each signed integer type has a pair of macros which give the smallest and largest values that it can hold. Each unsigned integer type has one such macro, for the maximum value; the minimum value is, of course, zero.
The values of these macros are all integer constant expressions. The
`MAX' and `MIN' macros for char
and short
int
types have values of type int
. The `MAX' and
`MIN' macros for the other types have values of the same type
described by the macro--thus, ULONG_MAX
has type
unsigned long int
.
SCHAR_MIN
This is the minimum value that can be represented by a signed char
.
SCHAR_MAX
UCHAR_MAX
These are the maximum values that can be represented by a
signed char
and unsigned char
, respectively.
CHAR_MIN
This is the minimum value that can be represented by a char
.
It's equal to SCHAR_MIN
if char
is signed, or zero
otherwise.
CHAR_MAX
This is the maximum value that can be represented by a char
.
It's equal to SCHAR_MAX
if char
is signed, or
UCHAR_MAX
otherwise.
SHRT_MIN
This is the minimum value that can be represented by a signed
short int
. On most machines that the GNU C library runs on,
short
integers are 16-bit quantities.
SHRT_MAX
USHRT_MAX
These are the maximum values that can be represented by a
signed short int
and unsigned short int
,
respectively.
INT_MIN
This is the minimum value that can be represented by a signed
int
. On most machines that the GNU C system runs on, an int
is
a 32-bit quantity.
INT_MAX
UINT_MAX
These are the maximum values that can be represented by, respectively,
the type signed int
and the type unsigned int
.
LONG_MIN
This is the minimum value that can be represented by a signed
long int
. On most machines that the GNU C system runs on, long
integers are 32-bit quantities, the same size as int
.
LONG_MAX
ULONG_MAX
These are the maximum values that can be represented by a
signed long int
and unsigned long int
, respectively.
LONG_LONG_MIN
This is the minimum value that can be represented by a signed
long long int
. On most machines that the GNU C system runs on,
long long
integers are 64-bit quantities.
LONG_LONG_MAX
ULONG_LONG_MAX
These are the maximum values that can be represented by a signed
long long int
and unsigned long long int
, respectively.
WCHAR_MAX
This is the maximum value that can be represented by a wchar_t
.
See section 6.1 Introduction to Extended Characters.
The header file `limits.h' also defines some additional constants that parameterize various operating system and file system limits. These constants are described in 31. System Configuration Parameters.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
webmaster | delorie software privacy |
Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |