strlen.c
来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 65 行
C
65 行
/* Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation. Ensure all expected transformations of builtin strlen occur and perform correctly. Written by Jakub Jelinek, 11/7/2000. Additional tests written by Roger Sayle, 11/02/2001: Ensure all builtin strlen comparisons against zero are optimized and perform correctly. The multiple calls to strcpy are to prevent the potentially "pure" strlen calls from being removed by CSE. */extern void abort (void);extern __SIZE_TYPE__ strlen (const char *);extern char *strcpy (char *, const char *);int x = 6;voidmain_test(void){ const char *const foo = "hello world"; char str[8]; char *ptr; if (strlen (foo) != 11) abort (); if (strlen (foo + 4) != 7) abort (); if (strlen (foo + (x++ & 7)) != 5) abort (); if (x != 7) abort (); ptr = str; strcpy (ptr, "nts"); if (strlen (ptr) == 0) abort (); strcpy (ptr, "nts"); if (strlen (ptr) < 1) abort (); strcpy (ptr, "nts"); if (strlen (ptr) <= 0) abort (); strcpy (ptr, "nts"); if (strlen (ptr+3) != 0) abort (); strcpy (ptr, "nts"); if (strlen (ptr+3) > 0) abort (); strcpy (ptr, "nts"); if (strlen (str+3) >= 1) 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_strlen (foo) != 11) abort ();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?