strlen-3.c

来自「用于进行gcc测试」· C语言 代码 · 共 71 行

C
71
字号
/* Copyright (C) 2004  Free Software Foundation.   Test strlen on const variables initialized to string literals.   Written by Jakub Jelinek, 9/14/2004.  */extern void abort (void);extern __SIZE_TYPE__ strlen (const char *);extern char *strcpy (char *, const char *);static const char bar[] = "Hello, World!";static const char baz[] = "hello, world?";static const char larger[20] = "short string";extern volatile int inside_main;int l1 = 1;int x = 6;voidmain_test(void){#ifdef __OPTIMIZE__  const char *foo;  int i;#endif  if (strlen (bar) != 13)    abort ();  if (strlen (bar + 3) != 10)    abort ();  if (strlen (&bar[6]) != 7)    abort ();  if (strlen (bar + (x++ & 7)) != 7)    abort ();  if (x != 7)    abort ();#ifdef __OPTIMIZE__  foo = bar;  for (i = 0; i < 4; ++i)    {      if (i == l1 - 1)	foo = "HELLO, WORLD!";      else if (i == l1)	foo = bar;      else if (i == l1 + 1)	foo = "hello, world!";      else	foo = baz;    }  if (strlen (foo) != 13)    abort ();#endif  if (strlen (larger) != 12)    abort ();  if (strlen (&larger[10]) != 2)    abort ();  inside_main = 0;  /* This will result in strlen call, because larger     array is bigger than its initializer.  */  if (strlen (larger + (x++ & 7)) != 5)    abort ();  if (x != 8)    abort ();  inside_main = 1;}

⌨️ 快捷键说明

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