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

📄 impl.h

📁 牛顿插值方法求解多项式的系数
💻 H
字号:
/* * (c) Copyright 1992, 1993 by Panagiotis Tsirigotis * All rights reserved.  The file named COPYRIGHT specifies the terms  * and conditions for redistribution. *//* * $Id: impl.h,v 1.1.1.1 2003/02/19 17:29:27 bbraun Exp $ */#ifndef __XLOG_IMPL_H#define __XLOG_IMPL_H#include <stdlib.h>  	/* For malloc() & free() prototypes */#include <stdarg.h>#define DEFINE_LINK_TYPE( type, name )		struct { type *next, *prev ; } name#define NEXT( obj, field )		(obj)->field.next#define PREV( obj, field )		(obj)->field.prev#define INIT_LINKS( obj, field )			\	{						\		NEXT( obj, field ) = obj ;		\		PREV( obj, field ) = obj ;		\	}/* * Link new object after object using the specified field */#define LINK( obj, new_obj, field )			\	{						\		NEXT( new_obj, field ) = NEXT( obj, field ) ;	\		PREV( new_obj, field ) = obj ;			\		NEXT( obj, field ) = new_obj ;			\		PREV( NEXT( obj, field ), field ) = new_obj ;	\	}#define UNLINK( obj, field )				\	{						\		NEXT( PREV( obj, field ), field ) = NEXT( obj, field ) ;	\		PREV( NEXT( obj, field ), field ) = PREV( obj, field ) ;	\	}/* * xlog linking: * 	When xlog1 is linked to xlog2 (i.e. errors on xlog1 are reported to  *		xlog2) we use the xl_clients field on xlog2 and the xl_other_users  *		field on xlog1 */struct xlog{	xlog_e 			xl_type ;	char 				*xl_id ;	int 				xl_flags ;	void 				(*xl_callback)() ;	void 				*xl_callback_arg ;	struct xlog 	*xl_use ;	/* xlog we report errors to 		*/	struct xlog 	*xl_clients ;	/* linked list of xlogs that use */													/* this xlog to report errors 	*/	DEFINE_LINK_TYPE( struct xlog, xl_other_users ) ;	struct xlog_ops	{		int 	(*init)		( struct xlog *, va_list ) ;		void	(*fini) 	( struct xlog * ) ;		int	(*write)	( struct xlog *, const char *, int, int, va_list ) ;		int	(*control)	( struct xlog *, xlog_cmd_e, va_list ) ;		int	(*parms) 	( xlog_e, va_list ) ;	} 	*xl_ops ;	void 	*xl_data ;} ;#define XL_INIT( xp, ap )		(*(xp)->xl_ops->init)( (xp), (ap) )#define XL_FINI( xp )			(*(xp)->xl_ops->fini)( xp )#define XL_WRITE( xp, buf, size, flags, ap ) \		(*(xp)->xl_ops->write)( (xp), (buf), (size), (flags), (ap ) )#define XL_CONTROL( xp, cmd, ap ) \		(*(xp)->xl_ops->control)( (xp), (cmd), (ap) )typedef struct xlog xlog_s ;typedef void (*voidfunc)() ;typedef int bool_int ;#define XP( p )			((struct xlog *)(p))#define XLOG_NULL		XP( NULL )#ifndef FALSE#define FALSE		0#define TRUE		1#endif#ifndef NULL#define NULL		0#endif#define NEW( type )		(type *) malloc( sizeof( type ) )int __xlog_add_errno(const char *, int) ;char *__xlog_explain_errno(char *, unsigned *) ;char *__xlog_new_string(const char *) ;#endif

⌨️ 快捷键说明

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