struct-by-value-20_y.c
来自「xml大全 可读写调用率很高 xml大全 可读写调用率很高」· C语言 代码 · 共 100 行
C
100 行
#include <stdarg.h>#include "compat-common.h"/* Turn off checking for variable arguments with -DSKIPVA. */#ifdef SKIPVAconst int test_va = 0;#elseconst int test_va = 1;#endif#include "mixed-struct-defs.h"extern void checkScd (Scd x, int i);extern void checkScdc (Scdc x, int i);extern void checkSd (Sd x, int i);extern void checkSdi (Sdi x, int i);extern void checkScsds (Scsds x, int i);extern void checkScsdsc (Scsdsc x, int i);extern void checkScsdis (Scsdis x, int i);extern void checkScsdisc (Scsdisc x, int i);extern void checkSsds (Ssds x, int i);extern void checkSsdsc (Ssdsc x, int i);extern void checkScssdss (Scssdss x, int i);extern void checkScssdssc (Scssdssc x, int i);#include "mixed-struct-init.h"#define T(TYPE) \extern TYPE g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE; \extern TYPE g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE; \extern TYPE g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE; \extern TYPE g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE; \ \void \checkg##TYPE (void) \{ \ check##TYPE ( g1s##TYPE, 1); \ check##TYPE ( g2s##TYPE, 2); \ check##TYPE ( g3s##TYPE, 3); \ check##TYPE ( g4s##TYPE, 4); \ check##TYPE ( g5s##TYPE, 5); \ check##TYPE ( g6s##TYPE, 6); \ check##TYPE ( g7s##TYPE, 7); \ check##TYPE ( g8s##TYPE, 8); \ check##TYPE ( g9s##TYPE, 9); \ check##TYPE ( g10s##TYPE, 10); \ check##TYPE ( g11s##TYPE, 11); \ check##TYPE ( g12s##TYPE, 12); \ check##TYPE ( g13s##TYPE, 13); \ check##TYPE ( g14s##TYPE, 14); \ check##TYPE ( g15s##TYPE, 15); \ check##TYPE ( g16s##TYPE, 16); \} \ \void \test##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4, \ TYPE s5, TYPE s6, TYPE s7, TYPE s8, \ TYPE s9, TYPE s10, TYPE s11, TYPE s12, \ TYPE s13, TYPE s14, TYPE s15, TYPE s16) \{ \ check##TYPE (s1, 1); \ check##TYPE (s2, 2); \ check##TYPE (s3, 3); \ check##TYPE (s4, 4); \ check##TYPE (s5, 5); \ check##TYPE (s6, 6); \ check##TYPE (s7, 7); \ check##TYPE (s8, 8); \ check##TYPE (s9, 9); \ check##TYPE (s10, 10); \ check##TYPE (s11, 11); \ check##TYPE (s12, 12); \ check##TYPE (s13, 13); \ check##TYPE (s14, 14); \ check##TYPE (s15, 15); \ check##TYPE (s16, 16); \} \ \void \testva##TYPE (int n, ...) \{ \ int i; \ va_list ap; \ if (test_va) \ { \ va_start (ap, n); \ for (i = 0; i < n; i++) \ { \ TYPE t = va_arg (ap, TYPE); \ check##TYPE (t, i+1); \ } \ va_end (ap); \ } \}T(Scd)T(Scsds)T(Scssdss)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?