snprintf支持格式化结构体

This commit is contained in:
guo_peixu
2022-06-07 16:26:10 +08:00
parent b677bb6c71
commit 20f3fb58b7
9 changed files with 2167 additions and 66 deletions

24
inc/snprintf.h Normal file
View File

@@ -0,0 +1,24 @@
#ifndef _PORTABLE_SNPRINTF_H_
#define _PORTABLE_SNPRINTF_H_
#define PORTABLE_SNPRINTF_VERSION_MAJOR 2
#define PORTABLE_SNPRINTF_VERSION_MINOR 2
#ifdef HAVE_SNPRINTF
#include <stdio.h>
#else
extern int snprintf(char *, size_t, const char *, /*args*/ ...);
extern int vsnprintf(char *, size_t, const char *, va_list);
#endif
#if defined(HAVE_SNPRINTF) && defined(PREFER_PORTABLE_SNPRINTF)
extern int portable_snprintf(void * handle, char *str, size_t str_m, const char *fmt, /*args*/ ...);
extern int portable_vsnprintf(void *handle, char *str, size_t str_m, const char *fmt, va_list ap);
/*#define snprintf portable_snprintf*/ /*others use libc snprintf*/
/*#define vsnprintf portable_vsnprintf*/
#endif
extern int asprintf (void * handle, char **ptr, const char *fmt, /*args*/ ...);
extern int vasprintf (void * handle, char **ptr, const char *fmt, va_list ap);
extern int asnprintf (void * handle, char **ptr, size_t str_m, const char *fmt, /*args*/ ...);
extern int vasnprintf(void * handle, char **ptr, size_t str_m, const char *fmt, va_list ap);
#endif