📄 va-clipper.h
字号:
/* GNU C varargs and stdargs support for Clipper. *//* Define __gnuc_va_list. */#ifndef __GNUC_VA_LIST#define __GNUC_VA_LISTtypedef struct{ int __va_ap; /* pointer to stack args */ void *__va_reg[4]; /* pointer to r0,f0,r1,f1 */ int __va_num; /* number of args processed */} __gnuc_va_list;#endif /* not __GNUC_VA_LIST */#if defined (_STDARG_H) || defined (_VARARGS_H)typedef __gnuc_va_list va_list;#define __va_list __gnuc_va_list /* acc compatibility */#define _VA_LIST#define _VA_LIST_#define _SYS_INT_STDARG_H /* acc compatibility *//* Call __builtin_next_arg even though we aren't using its value, so that we can verify that LASTARG is correct. */#ifdef _STDARG_H#define va_start(AP,LASTARG) \ (__builtin_next_arg (LASTARG), \ (AP) = *(va_list *)__builtin_saveregs(), \ (AP).__va_num = __builtin_args_info (0), \ (AP).__va_ap += __builtin_args_info (1))#else#define va_alist __builtin_va_alist/* The ... causes current_function_varargs to be set in cc1. */#define va_dcl va_list __builtin_va_alist; ...#define va_start(AP) \ ((AP) = *(va_list *)__builtin_saveregs(), \ (AP).__va_num = __builtin_args_info (0))#endif /* _STDARG_H *//* round to alignment of `type' but keep a least integer alignment */#define __va_round(AP,TYPE) \ ((AP).__va_ap = ((AP).__va_ap + __alignof__ (TYPE) - 1 ) & \ ~(__alignof__ (TYPE) - 1), \ ((AP).__va_ap = ((AP).__va_ap + sizeof (int) - 1) & ~(sizeof (int) - 1)))#define va_arg(AP, TYPE) \ (*((AP).__va_num < 2 && __builtin_classify_type (* (TYPE *)0) < 12 \ ? (__builtin_classify_type (* (TYPE *)0) == 8 \ ? ((TYPE *)(AP).__va_reg[2 * (AP).__va_num++ + 1]) \ : ((TYPE *)(AP).__va_reg[2 * (AP).__va_num++ ])) \ : ((AP).__va_num++, __va_round (AP,TYPE), ((TYPE *)((AP).__va_ap))++)))#define va_end(AP) ((void) 0)/* Copy __gnuc_va_list into another variable of this type. */#define __va_copy(dest, src) (dest) = (src)#endif /* defined (_STDARG_H) || defined (_VARARGS_H) */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -