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

📄 va-arg-24.c

📁 linux下编程用 编译软件
💻 C
字号:
/* The purpose of this code is to test argument passing of a tuple of   11 integers, with the break point between named and unnamed arguments   at every possible position.	*/#include <stdarg.h>#include <stdio.h>#include <stdlib.h>static int errors = 0;static voidverify (const char *tcase, int n[11]){  int i;  for (i = 0; i <= 10; i++)    if (n[i] != i)      {	printf (" %s: n[%d] = %d expected %d\n", tcase, i, n[i], i);	errors++;      }}#define STR(x) #x#define p(i) int q##i,#define P(i) n[i] = q##i;#define p0 p(0)#define p1 p(1)#define p2 p(2)#define p3 p(3)#define p4 p(4)#define p5 p(5)#define p6 p(6)#define p7 p(7)#define p8 p(8)#define p9 p(9)#define P0 P(0)#define P1 P(1)#define P2 P(2)#define P3 P(3)#define P4 P(4)#define P5 P(5)#define P6 P(6)#define P7 P(7)#define P8 P(8)#define P9 P(9)#define TCASE(x, params, vecinit)		\static void					\varargs##x (params ...)				\{						\  va_list ap;					\  int n[11];					\  int i;					\						\  va_start (ap, q##x);				\  vecinit					\  for (i = x + 1; i <= 10; i++)			\    n[i] = va_arg (ap, int);			\  va_end (ap);					\						\  verify (STR(varargs##x), n);			\}#define TEST(x) varargs##x (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)TCASE(0, p0			      , P0			     )TCASE(1, p0 p1			      , P0 P1			     )TCASE(2, p0 p1 p2		      , P0 P1 P2		     )TCASE(3, p0 p1 p2 p3		      , P0 P1 P2 P3		     )TCASE(4, p0 p1 p2 p3 p4		      , P0 P1 P2 P3 P4		     )TCASE(5, p0 p1 p2 p3 p4 p5	      , P0 P1 P2 P3 P4 P5	     )TCASE(6, p0 p1 p2 p3 p4 p5 p6	      , P0 P1 P2 P3 P4 P5 P6	     )TCASE(7, p0 p1 p2 p3 p4 p5 p6 p7      , P0 P1 P2 P3 P4 P5 P6 P7	     )TCASE(8, p0 p1 p2 p3 p4 p5 p6 p7 p8   , P0 P1 P2 P3 P4 P5 P6 P7 P8   )TCASE(9, p0 p1 p2 p3 p4 p5 p6 p7 p8 p9, P0 P1 P2 P3 P4 P5 P6 P7 P8 P9)int main(void){  TEST(0);  TEST(1);  TEST(2);  TEST(3);  TEST(4);  TEST(5);  TEST(6);  TEST(7);  TEST(8);  TEST(9);  if (errors)    abort ();  exit (0);}

⌨️ 快捷键说明

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