strstr-asm.c

来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 46 行

C
46
字号
/* Copyright (C) 2000, 2003  Free Software Foundation.   Ensure all expected transformations of builtin strstr occur and   perform correctly in presence of redirect.  */#define ASMNAME(cname)  ASMNAME2 (__USER_LABEL_PREFIX__, cname)#define ASMNAME2(prefix, cname) STRING (prefix) cname#define STRING(x)    #xtypedef __SIZE_TYPE__ size_t;extern void abort (void);extern char *strstr (const char *, const char *)  __asm (ASMNAME ("my_strstr"));const char *p = "rld", *q = "hello world";voidmain_test (void){  const char *const foo = "hello world";  if (strstr (foo, "") != foo)    abort ();  if (strstr (foo + 4, "") != foo + 4)    abort ();  if (strstr (foo, "h") != foo)    abort ();  if (strstr (foo, "w") != foo + 6)    abort ();  if (strstr (foo + 6, "o") != foo + 7)    abort ();  if (strstr (foo + 1, "world") != foo + 6)    abort ();  if (strstr (foo + 2, p) != foo + 8)    abort ();  if (strstr (q, "") != q)    abort ();  if (strstr (q + 1, "o") != q + 4)    abort ();  /* Test at least one instance of the __builtin_ style.  We do this     to ensure that it works and that the prototype is correct.  */  if (__builtin_strstr (foo + 1, "world") != foo + 6)    abort ();}

⌨️ 快捷键说明

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