⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ncbi_limits.h

📁 ncbi源码
💻 H
字号:
/* * =========================================================================== * PRODUCTION $Log: ncbi_limits.h,v $ * PRODUCTION Revision 1000.0  2003/10/29 15:01:34  gouriano * PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.4 * PRODUCTION * =========================================================================== */#ifndef NCBI_LIMITS__H#define NCBI_LIMITS__H/*  $Id: ncbi_limits.h,v 1000.0 2003/10/29 15:01:34 gouriano Exp $ * =========================================================================== * *                            PUBLIC DOMAIN NOTICE *               National Center for Biotechnology Information * *  This software/database is a "United States Government Work" under the *  terms of the United States Copyright Act.  It was written as part of *  the author's official duties as a United States Government employee and *  thus cannot be copyrighted.  This software/database is freely available *  to the public for use. The National Library of Medicine and the U.S. *  Government have not placed any restriction on its use or reproduction. * *  Although all reasonable efforts have been taken to ensure the accuracy *  and reliability of the software and data, the NLM and the U.S. *  Government do not and cannot warrant the performance or results that *  may be obtained by using this software or data. The NLM and the U.S. *  Government disclaim all warranties, express or implied, including *  warranties of performance, merchantability or fitness for any particular *  purpose. * *  Please cite the author in any work or product based on this material. * * =========================================================================== * * Author:  Denis Vakatov * * File Description: * *   Limits for the NCBI C/C++ fixed-size types: *      Char, Uchar *      Int1, Uint1  --  kMin_I1,       kMax_I1,       kMax_UI1 *      Int2, Uint2  --  kMin_I2,       kMax_I2,       kMax_UI2 *      Int4, Uint4  --  kMin_I4,       kMax_I4,       kMax_UI4 *      Int8, Uint8  --  kMin_I8,       kMax_I8,       kMax_UI8 * *   Limits for the built-in integer types: *      "char"       --  kMin_Char,     kMax_Char,     kMax_UChar *      "short"      --  kMin_Short,    kMax_Short,    kMax_UShort *      "int"        --  kMin_Int,      kMax_Int,      kMax_UInt *      "long"       --  kMin_Long,     kMax_Long,     kMax_ULong *      "long long"  --  kMin_LongLong, kMax_LongLong, kMax_ULongLong *      "__int64"    --  kMin_Int64,    kMax_Int64,    kMax_UInt64 * *   Limits for the built-in floating-point types: *      "float"      --  kMin_Float,    kMax_Float *      "double"     --  kMin_Double,   kMax_Double * */#include <corelib/ncbitype.h>#include <limits.h>#include <float.h>/** @addtogroup Portability * * @{ *//* Int8, Uint8 *   NOTE:  "NCBI_MIN/MAX_***8" are temporary preprocessor definitions, so *          do not use them... always use "kMax_*" and "kMin_*" instead! */#if   (SIZEOF_LONG == 8)#  define NCBI_MIN_I8  LONG_MIN#  define NCBI_MAX_I8  LONG_MAX#  define NCBI_MAX_UI8 ULONG_MAX#elif (SIZEOF_LONG_LONG == 8)#  define NCBI_MIN_I8  0x8000000000000000LL#  define NCBI_MAX_I8  0x7FFFFFFFFFFFFFFFLL#  define NCBI_MAX_UI8 0xFFFFFFFFFFFFFFFFULL#elif defined(NCBI_USE_INT64)#  define NCBI_MIN_I8  0x8000000000000000i64#  define NCBI_MAX_I8  0x7FFFFFFFFFFFFFFFi64#  define NCBI_MAX_UI8 0xFFFFFFFFFFFFFFFFui64#endif/*  Limits:  C++ and C interfaces */#ifdef __cplusplus/* (BEGIN C++ interface) *//* [C++]  built-in integer types */const signed   char   kMin_Char   = CHAR_MIN;const signed   char   kMax_Char   = CHAR_MAX;const signed   char   kMin_SChar  = SCHAR_MIN;const signed   char   kMax_SChar  = SCHAR_MAX;const unsigned char   kMax_UChar  = UCHAR_MAX;const signed   short  kMin_Short  = SHRT_MIN;const signed   short  kMax_Short  = SHRT_MAX;const unsigned short  kMax_UShort = USHRT_MAX;const signed   int    kMin_Int    = INT_MIN;const signed   int    kMax_Int    = INT_MAX;const unsigned int    kMax_UInt   = UINT_MAX;const signed   long   kMin_Long   = LONG_MIN;const signed   long   kMax_Long   = LONG_MAX;const unsigned long   kMax_ULong  = ULONG_MAX;#  if (SIZEOF_LONG_LONG == 8)const signed   long long  kMin_LongLong   = 0x8000000000000000LL;const signed   long long  kMax_LongLong   = 0x7FFFFFFFFFFFFFFFLL;const unsigned long long  kMax_ULongLong  = 0xFFFFFFFFFFFFFFFFULL;#  elif (SIZEOF_LONG_LONG == 4)const signed   long long  kMin_LongLong   = 0x80000000LL;const signed   long long  kMax_LongLong   = 0x7FFFFFFFLL;const unsigned long long  kMax_ULongLong  = 0xFFFFFFFFULL;#  endif#  if defined(NCBI_USE_INT64)const signed   __int64 kMin_Int64  = NCBI_MIN_I8;const signed   __int64 kMax_Int64  = NCBI_MAX_I8;const unsigned __int64 kMax_UInt64 = NCBI_MAX_UI8;#  endif/* [C++]  built-in floating-point types */const float kMin_Float = FLT_MIN;const float kMax_Float = FLT_MAX;const double kMin_Double = DBL_MIN;const double kMax_Double = DBL_MAX;/* [C++]  NCBI fixed-size types */const Int1  kMin_I1  = SCHAR_MIN;const Int1  kMax_I1  = SCHAR_MAX;const Uint1 kMax_UI1 = UCHAR_MAX;const Int2  kMin_I2  = SHRT_MIN;const Int2  kMax_I2  = SHRT_MAX;const Uint2 kMax_UI2 = USHRT_MAX;const Int4  kMin_I4  = INT_MIN;const Int4  kMax_I4  = INT_MAX;const Uint4 kMax_UI4 = UINT_MAX;const Int8  kMin_I8  = NCBI_MIN_I8;const Int8  kMax_I8  = NCBI_MAX_I8;const Uint8 kMax_UI8 = NCBI_MAX_UI8;#  undef NCBI_MIN_I8#  undef NCBI_MAX_I8#  undef NCBI_MAX_UI8/* (END of C++ interface) */#else/* (BEGIN C interface) *//* [ C ]  built-in integer types */#  define kMin_Char   CHAR_MIN#  define kMax_Char   CHAR_MAX#  define kMin_SChar  SCHAR_MIN#  define kMax_SChar  SCHAR_MAX#  define kMax_UChar  UCHAR_MAX#  define kMin_Short  SHRT_MIN#  define kMax_Short  SHRT_MAX#  define kMax_UShort USHRT_MAX#  define kMin_Int    INT_MIN#  define kMax_Int    INT_MAX#  define kMax_UInt   UINT_MAX#  if (SIZEOF_LONG_LONG == 8)#    define kMin_LongLong   0x8000000000000000LL#    define kMax_LongLong   0x7FFFFFFFFFFFFFFFLL#    define kMax_ULongLong  0xFFFFFFFFFFFFFFFFULL#  elif (SIZEOF_LONG_LONG == 4)#    define kMin_LongLong   0x80000000LL#    define kMax_LongLong   0x7FFFFFFFLL#    define kMax_ULongLong  0xFFFFFFFFULL#  endif#  if (SIZEOF___INT64 == 8)#    define __int64 kMin_Int64  0x8000000000000000i64#    define __int64 kMax_Int64  0x7FFFFFFFFFFFFFFFi64#    define __int64 kMax_UInt64 0xFFFFFFFFFFFFFFFFui64#  endif/* [ C ]  built-in floating-point types */#  define kMin_Float  FLT_MIN;#  define kMax_Float  FLT_MAX;#  define kMin_Double DBL_MIN;#  define kMax_Double DBL_MAX;/* [ C ]  NCBI fixed-size types */#  define kMin_I1   SCHAR_MIN#  define kMax_I1   SCHAR_MAX#  define kMax_UI1  UCHAR_MAX#  define kMin_I2   SHRT_MIN#  define kMax_I2   SHRT_MAX#  define kMax_UI2  USHRT_MAX#  define kMin_I4   INT_MIN#  define kMax_I4   INT_MAX#  define kMax_UI4  UINT_MAX#  define kMin_I8   NCBI_MIN_I8#  define kMax_I8   NCBI_MAX_I8#  define kMax_UI8  NCBI_MAX_UI8/* (END of C interface) */#endif  /* __cplusplus *//* @} *//* * ========================================================================== * $Log: ncbi_limits.h,v $ * Revision 1000.0  2003/10/29 15:01:34  gouriano * PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.4 * * Revision 1.4  2003/04/01 14:18:44  siyan * Added doxygen support * * Revision 1.3  2002/04/11 20:39:15  ivanov * CVS log moved to end of the file * * Revision 1.2  2001/05/30 16:17:23  vakatov * Introduced #NCBI_USE_INT64 -- in oreder to use "__int64" type * only when absolutely necessary (otherwise it conflicted with * "long long" for the Intel C++ compiler). * * Revision 1.1  2001/01/03 17:34:56  vakatov * Initial revision * * ========================================================================== */#endif /* NCBI_LIMITS__H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -