Viewing file:      limits.h (4.47 KB)      -rw-r--r-- Select action/file-type:    (+) |   (+) |   (+) | Code (+) | Session (+) |   (+) | SDB (+) |   (+) |   (+) |   (+) |   (+) |   (+) |
 
/* Copyright (C) 1991, 92, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.    This file is part of the GNU C Library.
     The GNU C Library is free software; you can redistribute it and/or    modify it under the terms of the GNU Lesser General Public    License as published by the Free Software Foundation; either    version 2.1 of the License, or (at your option) any later version.
     The GNU C Library is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU    Lesser General Public License for more details.
     You should have received a copy of the GNU Lesser General Public    License along with the GNU C Library; if not, write to the Free    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA    02111-1307 USA.  */
  /*  *    ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types    <limits.h>  */
  #ifndef _LIBC_LIMITS_H_ #define _LIBC_LIMITS_H_    1
  #include <features.h>
 
  /* Maximum length of any multibyte character in any locale.    We define this value here since the gcc header does not define    the correct value.  */ #define MB_LEN_MAX    16
 
  /* If we are not using GNU CC we have to define all the symbols ourself.    Otherwise use gcc's definitions (see below).  */ #if !defined __GNUC__ || __GNUC__ < 2
  /* We only protect from multiple inclusion here, because all the other    #include's protect themselves, and in GCC 2 we may #include_next through    multiple copies of this file before we get to GCC's.  */ # ifndef _LIMITS_H #  define _LIMITS_H    1
  #include <bits/wordsize.h>
  /* We don't have #include_next.    Define ANSI <limits.h> for standard 32-bit words.  */
  /* These assume 8-bit `char's, 16-bit `short int's,    and 32-bit `int's and `long int's.  */
  /* Number of bits in a `char'.    */ #  define CHAR_BIT    8
  /* Minimum and maximum values a `signed char' can hold.  */ #  define SCHAR_MIN    (-128) #  define SCHAR_MAX    127
  /* Maximum value an `unsigned char' can hold.  (Minimum is 0.)  */ #  define UCHAR_MAX    255
  /* Minimum and maximum values a `char' can hold.  */ #  ifdef __CHAR_UNSIGNED__ #   define CHAR_MIN    0 #   define CHAR_MAX    UCHAR_MAX #  else #   define CHAR_MIN    SCHAR_MIN #   define CHAR_MAX    SCHAR_MAX #  endif
  /* Minimum and maximum values a `signed short int' can hold.  */ #  define SHRT_MIN    (-32768) #  define SHRT_MAX    32767
  /* Maximum value an `unsigned short int' can hold.  (Minimum is 0.)  */ #  define USHRT_MAX    65535
  /* Minimum and maximum values a `signed int' can hold.  */ #  define INT_MIN    (-INT_MAX - 1) #  define INT_MAX    2147483647
  /* Maximum value an `unsigned int' can hold.  (Minimum is 0.)  */ #  define UINT_MAX    4294967295U
  /* Minimum and maximum values a `signed long int' can hold.  */ #  if __WORDSIZE == 64 #   define LONG_MAX    9223372036854775807L #  else #   define LONG_MAX    2147483647L #  endif #  define LONG_MIN    (-LONG_MAX - 1L)
  /* Maximum value an `unsigned long int' can hold.  (Minimum is 0.)  */ #  if __WORDSIZE == 64 #   define ULONG_MAX    18446744073709551615UL #  else #   define ULONG_MAX    4294967295UL #  endif
  #  ifdef __USE_ISOC99
  /* Minimum and maximum values a `signed long long int' can hold.  */ #   define LLONG_MAX    9223372036854775807LL #   define LLONG_MIN    (-LLONG_MAX - 1LL)
  /* Maximum value an `unsigned long long int' can hold.  (Minimum is 0.)  */ #   define ULLONG_MAX    18446744073709551615ULL
  #  endif /* ISO C99 */
  # endif    /* limits.h  */ #endif    /* GCC 2.  */
  #endif    /* !_LIBC_LIMITS_H_ */
   /* Get the compiler's limits.h, which defines almost all the ISO constants.
      We put this #include_next outside the double inclusion check because     it should be possible to include this file more than once and still get     the definitions from gcc's header.  */ #if defined __GNUC__ && !defined _GCC_LIMITS_H_ /* `_GCC_LIMITS_H_' is what GCC's file defines.  */ # include_next <limits.h> #endif
  /* The <limits.h> files in some gcc versions don't define LLONG_MIN,    LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for    ages are available.  */ #if defined __USE_ISOC99 && defined __GNUC__ # ifndef LLONG_MIN #  define LLONG_MIN    (-LLONG_MAX-1) # endif # ifndef LLONG_MAX #  define LLONG_MAX    __LONG_LONG_MAX__ # endif # ifndef ULLONG_MAX #  define ULLONG_MAX    (LLONG_MAX * 2ULL + 1) # endif #endif
  #ifdef    __USE_POSIX /* POSIX adds things to <limits.h>.  */ # include <bits/posix1_lim.h> #endif
  #ifdef    __USE_POSIX2 # include <bits/posix2_lim.h> #endif
  #ifdef    __USE_XOPEN # include <bits/xopen_lim.h> #endif 
  |