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

📄 ncbi_std.h

📁 ncbi源码
💻 H
字号:
/* * =========================================================================== * PRODUCTION $Log: ncbi_std.h,v $ * PRODUCTION Revision 1000.4  2004/06/01 18:04:20  gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.28 * PRODUCTION * =========================================================================== *//* $Id: ncbi_std.h,v 1000.4 2004/06/01 18:04:20 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 offical 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: Ilya Dondoshansky * *//** @file ncbi_std.h * Type and macro definitions from C toolkit that are not defined in C++  * toolkit. */#ifndef __NCBI_STD__#define __NCBI_STD__#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <ctype.h>#include <assert.h>/* which toolkit are we using? */#include "blast_toolkit.h"#include <algo/blast/core/ncbi_math.h>#ifdef __cplusplusextern "C" {#endif/* For some reason, ICC claims a suitable __STDC_VERSION__ but then   barfs on restrict. */#ifdef __ICC#define NCBI_RESTRICT __restrict#elif __STDC_VERSION__ >= 199901#define NCBI_RESTRICT restrict#else#define NCBI_RESTRICT#endif/* inlining support -- compiler dependent */#if defined(__cplusplus)  ||  __STDC_VERSION__ >= 199901/* C++ and C99 both guarantee "inline" */#define NCBI_INLINE inline#elif defined(__GNUC__)/* So does GCC, normally, but it may be running with strict options   that require the extra underscores */#define NCBI_INLINE __inline__#elif defined(_MSC_VER)  ||  defined(__sgi) || defined(HPUX)/* MSVC and (older) MIPSpro always require leading underscores */#define NCBI_INLINE __inline#else/* "inline" seems to work on our remaining in-house compilers   (WorkShop, Compaq, ICC, MPW) */#define NCBI_INLINE inline#endif#ifdef _MSC_VER#define strcasecmp _stricmp#define strdup _strdup#define snprintf _snprintf#endif#ifndef _NCBISTD_ /* if we're not in the C toolkit... */typedef Uint1 Boolean;#ifndef TRUE#define TRUE 1#endif#ifndef FALSE#define FALSE 0#endif#endif#ifndef ASSERT#define ASSERT assert#endif#ifndef MIN#define MIN(a,b)	((a)>(b)?(b):(a))#endif#ifndef MAX#define MAX(a,b)	((a)>=(b)?(a):(b))#endif#ifndef ABS#define ABS(a)	((a)>=0?(a):-(a))#endif#ifndef SIGN#define SIGN(a)	((a)>0?1:((a)<0?-1:0))#endif/* low-level ANSI-style functions */#ifndef _NCBISTD_ /* if we're not in the C toolkit ... */#define UINT4_MAX     4294967295U#define INT4_MAX    2147483647#define INT4_MIN    (-2147483647-1)#define NCBIMATH_LN2      0.69314718055994530941723212145818#define LN2         (0.693147180559945)#define INT2_MAX    32767#define INT2_MIN    (-32768)#ifndef DIM#define DIM(A) (sizeof(A)/sizeof((A)[0]))#endif#define NULLB '\0'#ifndef PATH_MAX#define PATH_MAX 1024#endif#define DIRDELIMSTR        "/"#else#endif /* _NCBISTD_ */extern void* BlastMemDup (const void *orig, size_t size);/******************************************************************************//** A generic linked list node structure */typedef struct ListNode {	Uint1 choice;   /* to pick a choice */	void *ptr;              /* attached data */	struct ListNode *next;  /* next in linked list */} ListNode;ListNode* ListNodeNew (ListNode* vnp);ListNode* ListNodeAdd (ListNode** head);ListNode* ListNodeAddPointer (ListNode** head, Uint1 choice, void *value);ListNode* ListNodeFree (ListNode* vnp);ListNode* ListNodeFreeData (ListNode* vnp);ListNode* ListNodeSort (ListNode* list_to_sort,                int (*compar) (const void *, const void *));ListNode* ListNodeCopyStr (ListNode** head, Uint1 choice, char* str);Int4 ListNodeLen (ListNode* vnp);#ifdef __cplusplus}#endif#endif /* !__NCBI_STD__ */

⌨️ 快捷键说明

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