string-opt-17.c

来自「linux下编程用 编译软件」· C语言 代码 · 共 46 行

C
46
字号
/* Copyright (C) 2003  Free Software Foundation.   Test strcpy optimizations don't evaluate side-effects twice.         Written by Jakub Jelinek, June 23, 2003.  */typedef __SIZE_TYPE__ size_t;extern char *strcpy (char *, const char *);extern int memcmp (const void *, const void *, size_t);extern void abort (void);extern void exit (int);size_ttest1 (char *s, size_t i){  strcpy (s, "foobarbaz" + i++);  return i;}size_tcheck2 (void){  static size_t r = 5;  if (r != 5)    abort ();  return ++r;}voidtest2 (char *s){  strcpy (s, "foobarbaz" + check2 ());}intmain (void){  char buf[10];  if (test1 (buf, 7) != 8 || memcmp (buf, "az", 3))    abort ();  test2 (buf);  if (memcmp (buf, "baz", 4))    abort ();  exit (0);}

⌨️ 快捷键说明

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