built-in-setjmp.c

来自「俄罗斯高人Mamaich的Pocket gcc编译器(运行在PocketPC上)」· C语言 代码 · 共 40 行

C
40
字号
extern int strcmp(const char *, const char *);extern char *strcpy(char *, const char *);extern void abort(void);extern void exit(int);void *buf[20];void __attribute__((noinline))sub2 (void){  __builtin_longjmp (buf, 1);}intmain (){  char *p = (char *) __builtin_alloca (20);  strcpy (p, "test");  if (__builtin_setjmp (buf))    {      if (strcmp (p, "test") != 0)	abort ();      exit (0);    }  {    int *q = (int *) __builtin_alloca (p[2] * sizeof (int));    int i;        for (i = 0; i < p[2]; i++)      q[i] = 0;    while (1)      sub2 ();  }}

⌨️ 快捷键说明

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