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

📄 printf-args.h

📁 开源备份软件源码 AMANDA, the Advanced Maryland Automatic Network Disk Archiver, is a backup system that a
💻 H
字号:
/* Decomposed printf argument list.   Copyright (C) 1999, 2002-2003, 2006-2007 Free Software Foundation, Inc.   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2, or (at your option)   any later version.   This program 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 General Public License for more details.   You should have received a copy of the GNU General Public License along   with this program; if not, write to the Free Software Foundation,   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */#ifndef _PRINTF_ARGS_H#define _PRINTF_ARGS_H/* This file can be parametrized with the following macros:     ENABLE_UNISTDIO    Set to 1 to enable the unistdio extensions.     PRINTF_FETCHARGS   Name of the function to be declared.     STATIC             Set to 'static' to declare the function static.  *//* Default parameters.  */#ifndef PRINTF_FETCHARGS# define PRINTF_FETCHARGS printf_fetchargs#endif/* Get size_t.  */#include <stddef.h>/* Get wchar_t.  */#if HAVE_WCHAR_T# include <stddef.h>#endif/* Get wint_t.  */#if HAVE_WINT_T# include <wchar.h>#endif/* Get va_list.  */#include <stdarg.h>/* Argument types */typedef enum{  TYPE_NONE,  TYPE_SCHAR,  TYPE_UCHAR,  TYPE_SHORT,  TYPE_USHORT,  TYPE_INT,  TYPE_UINT,  TYPE_LONGINT,  TYPE_ULONGINT,#if HAVE_LONG_LONG_INT  TYPE_LONGLONGINT,  TYPE_ULONGLONGINT,#endif  TYPE_DOUBLE,  TYPE_LONGDOUBLE,  TYPE_CHAR,#if HAVE_WINT_T  TYPE_WIDE_CHAR,#endif  TYPE_STRING,#if HAVE_WCHAR_T  TYPE_WIDE_STRING,#endif  TYPE_POINTER,  TYPE_COUNT_SCHAR_POINTER,  TYPE_COUNT_SHORT_POINTER,  TYPE_COUNT_INT_POINTER,  TYPE_COUNT_LONGINT_POINTER#if HAVE_LONG_LONG_INT, TYPE_COUNT_LONGLONGINT_POINTER#endif#if ENABLE_UNISTDIO  /* The unistdio extensions.  */, TYPE_U8_STRING, TYPE_U16_STRING, TYPE_U32_STRING#endif} arg_type;/* Polymorphic argument */typedef struct{  arg_type type;  union  {    signed char			a_schar;    unsigned char		a_uchar;    short			a_short;    unsigned short		a_ushort;    int				a_int;    unsigned int		a_uint;    long int			a_longint;    unsigned long int		a_ulongint;#if HAVE_LONG_LONG_INT    long long int		a_longlongint;    unsigned long long int	a_ulonglongint;#endif    float			a_float;    double			a_double;    long double			a_longdouble;    int				a_char;#if HAVE_WINT_T    wint_t			a_wide_char;#endif    const char*			a_string;#if HAVE_WCHAR_T    const wchar_t*		a_wide_string;#endif    void*			a_pointer;    signed char *		a_count_schar_pointer;    short *			a_count_short_pointer;    int *			a_count_int_pointer;    long int *			a_count_longint_pointer;#if HAVE_LONG_LONG_INT    long long int *		a_count_longlongint_pointer;#endif#if ENABLE_UNISTDIO    /* The unistdio extensions.  */    const uint8_t *		a_u8_string;    const uint16_t *		a_u16_string;    const uint32_t *		a_u32_string;#endif  }  a;}argument;typedef struct{  size_t count;  argument *arg;}arguments;/* Fetch the arguments, putting them into a. */#ifdef STATICSTATIC#elseextern#endifint PRINTF_FETCHARGS (va_list args, arguments *a);#endif /* _PRINTF_ARGS_H */

⌨️ 快捷键说明

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