Precompiled Header Files

Chapter 14 - Advanced Programming Topics

Visual C++ 6: The Complete Reference
Chris H. Pappas and William H. Murray, III
  Copyright 1998 The McGraw-Hill Companies

LIMITS.H and FLOAT.H
The ANSI C committee requires that all C compilers document the system-dependent ranges of integer and floating-point types in order to help you write portable code. Table 14-2 contains a listing of the ANSI C-required integral definitions found in the LIMITS.H header file.
Table 14-2: Values defined in LIMITS.H (ANSI C)
Defined Type
Size
Description
#define CHAR_BIT
8
Number of bits in a char
#define CHAR_MAX
SCHAR_MAX
Maximum char value
#define CHAR_MIN
SCHAR_MIN
Minimum char value
#define INT_MAX
2147483647
Maximum (signed) int value
#define INT_MIN
(-2147483647 – 1)
Minimum (signed) int value
#define LONG_MAX
2147483647L
Maximum (signed) long value
#define LONG_MIN
(-2147483647L – 1)
Minimum (signed) long value
#define SCHAR_MAX
127
Maximum signed char value
#define SCHAR_MIN
(-128)
Minimum signed char value
#define SHRT_MAX
32767
Maximum (signed) short value
#define SHRT_MIN
(-32768)
Minimum (signed) short value
#define UCHAR_MAX
0xff
Maximum unsigned char value
#define UINT_MAX
0xffffffff
Maximum unsigned int value
#define ULONG_MAX
0xffffffffUL
Maximum unsigned long value
#define USHRT_MAX
0xffff
Maximum unsigned short value
Program code can use these ranges to make certain that data will fit in the specified data type. For example, a VAX integer may be 4 bytes, while an older DOS-based integer is only 2. To solve this problem, the following code might be used:
if (PROGRAM_NEEDED_MAX > INT_MAX)
 pvoid = new llong_storage;
else
 pvoid = new iinteger_storage;
Table 14-3 shows the ANSI C-required floating-point definitions.
Table 14-3: Values Defined in FLOAT.H(ANSI C)
Definition
Value
Comment
#define FLT_RADIX
2
Exponent radix
#define FLT_ROUNDS
1
Addition rounding: near
smallest such that 1.0+FLT_EPSILON != 1.0 #define FLT_EPSILON
1.192092896e-07F
smallest such that 1.0+DBL_EPSILON != 1.0 #define DBL_EPSILON
2.2204460492503131e-016
smallest such that 1.0+LDBL_EPSILON != 1.0 #define LDBL_EPSILON
DBL_EPSILON
#define FLT_DIG
6
# of decimal digits of precision
#define DBL_DIG
15
# of decimal digits of precision
#define LDBL_DIG
DBL_DIG
# of decimal digits of precision
#define FLT_MIN
1.175494351e-38F
Min positive val
#define DBL_MIN
2.2250738585072014e-308
Min positive val
#define LDBL_MIN
DBL_MIN
Min pos val
#define FLT_MIN_EXP
(-125)
Min binary exponent
#define DBL_MIN_EXP
(-1021)
Min binary exponent
#define LDBL_MIN_EXP
DBL_MIN_EXP
Min binary exponent
#define FLT_MIN_10_EXP
(-37)
Min decimal exponent
#define DBL_MIN_10_EXP
(-307)
Min decimal exponent
#define LDBL_MAX_10_EXP
DBL_MIN_10_EXP
Max decimal exponent
#define FLT_MAX
3.402823466e+38F
Max value
#define DBL_MAX
1.7976931348623158e+308
Max value
#define LDBL_MAX
DBL_MAX
Max value
#define FLT_MAX_EXP
128
Max binary exponent
#define DBL_MAX_EXP
1024
Max binary exponent
#define LDBL_MAX_EXP
DBL_MAX_EXP
Max binary exponent
#define FLT_MAX_10_EXP
38
Max decimal exponent
#define DBL_MAX_10_EXP
308
Max decimal exponent
#define LDBL_MAX_10_EXP
DBL_MAX_10_EXP
Max decimal exponent

Books24x7.com, Inc 2000 –  


Visual C++ 6(c) The Complete Reference
Visual Studio 6: The Complete Reference
ISBN: B00007FYGA
EAN: N/A
Year: 1998
Pages: 207

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net