亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? memrchr.c

?? Linux下文件工具。
?? C
字號:
/* memrchr -- find the last occurrence of a byte in a memory block   Copyright (C) 1991, 93, 96, 97, 99, 2000 Free Software Foundation, Inc.   Based on strlen implementation by Torbjorn Granlund (tege@sics.se),   with help from Dan Sahlin (dan@sics.se) and   commentary by Jim Blandy (jimb@ai.mit.edu);   adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),   and implemented by Roland McGrath (roland@ai.mit.edu).   The GNU C Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Library General Public License as   published by the Free Software Foundation; either version 2 of the   License, or (at your option) any later version.   The GNU C Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Library General Public License for more details.   You should have received a copy of the GNU Library General Public   License along with the GNU C Library; see the file COPYING.LIB.  If not,   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,   Boston, MA 02111-1307, USA.  */#ifdef HAVE_CONFIG_H# include <config.h>#endif#include <stdlib.h>#undef __ptr_t#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)# define __ptr_t void *#else /* Not C++ or ANSI C.  */# define __ptr_t char *#endif /* C++ or ANSI C.  */#if defined (_LIBC)# include <string.h># include <memcopy.h>#else# define reg_char char#endif#if defined (HAVE_LIMITS_H) || defined (_LIBC)# include <limits.h>#endif#define LONG_MAX_32_BITS 2147483647#ifndef LONG_MAX# define LONG_MAX LONG_MAX_32_BITS#endif#include <sys/types.h>#undef __memrchr#undef memrchr#ifndef weak_alias# define __memrchr memrchr#endif/* Search no more than N bytes of S for C.  */__ptr_t__memrchr (s, c_in, n)     const __ptr_t s;     int c_in;     size_t n;{  const unsigned char *char_ptr;  const unsigned long int *longword_ptr;  unsigned long int longword, magic_bits, charmask;  unsigned reg_char c;  c = (unsigned char) c_in;  /* Handle the last few characters by reading one character at a time.     Do this until CHAR_PTR is aligned on a longword boundary.  */  for (char_ptr = (const unsigned char *) s + n;       n > 0 && ((unsigned long int) char_ptr		 & (sizeof (longword) - 1)) != 0;       --n)    if (*--char_ptr == c)      return (__ptr_t) char_ptr;  /* All these elucidatory comments refer to 4-byte longwords,     but the theory applies equally well to 8-byte longwords.  */  longword_ptr = (unsigned long int *) char_ptr;  /* Bits 31, 24, 16, and 8 of this number are zero.  Call these bits     the "holes."  Note that there is a hole just to the left of     each byte, with an extra at the end:     bits:  01111110 11111110 11111110 11111111     bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD     The 1-bits make sure that carries propagate to the next 0-bit.     The 0-bits provide holes for carries to fall into.  */  if (sizeof (longword) != 4 && sizeof (longword) != 8)    abort ();#if LONG_MAX <= LONG_MAX_32_BITS  magic_bits = 0x7efefeff;#else  magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff;#endif  /* Set up a longword, each of whose bytes is C.  */  charmask = c | (c << 8);  charmask |= charmask << 16;#if LONG_MAX > LONG_MAX_32_BITS  charmask |= charmask << 32;#endif  /* Instead of the traditional loop which tests each character,     we will test a longword at a time.  The tricky part is testing     if *any of the four* bytes in the longword in question are zero.  */  while (n >= sizeof (longword))    {      /* We tentatively exit the loop if adding MAGIC_BITS to	 LONGWORD fails to change any of the hole bits of LONGWORD.	 1) Is this safe?  Will it catch all the zero bytes?	 Suppose there is a byte with all zeros.  Any carry bits	 propagating from its left will fall into the hole at its	 least significant bit and stop.  Since there will be no	 carry from its most significant bit, the LSB of the	 byte to the left will be unchanged, and the zero will be	 detected.	 2) Is this worthwhile?  Will it ignore everything except	 zero bytes?  Suppose every byte of LONGWORD has a bit set	 somewhere.  There will be a carry into bit 8.  If bit 8	 is set, this will carry into bit 16.  If bit 8 is clear,	 one of bits 9-15 must be set, so there will be a carry	 into bit 16.  Similarly, there will be a carry into bit	 24.  If one of bits 24-30 is set, there will be a carry	 into bit 31, so all of the hole bits will be changed.	 The one misfire occurs when bits 24-30 are clear and bit	 31 is set; in this case, the hole at bit 31 is not	 changed.  If we had access to the processor carry flag,	 we could close this loophole by putting the fourth hole	 at bit 32!	 So it ignores everything except 128's, when they're aligned	 properly.	 3) But wait!  Aren't we looking for C, not zero?	 Good point.  So what we do is XOR LONGWORD with a longword,	 each of whose bytes is C.  This turns each byte that is C	 into a zero.  */      longword = *--longword_ptr ^ charmask;      /* Add MAGIC_BITS to LONGWORD.  */      if ((((longword + magic_bits)	    /* Set those bits that were unchanged by the addition.  */	    ^ ~longword)	   /* Look at only the hole bits.  If any of the hole bits	      are unchanged, most likely one of the bytes was a	      zero.  */	   & ~magic_bits) != 0)	{	  /* Which of the bytes was C?  If none of them were, it was	     a misfire; continue the search.  */	  const unsigned char *cp = (const unsigned char *) longword_ptr;#if LONG_MAX > 2147483647	  if (cp[7] == c)	    return (__ptr_t) &cp[7];	  if (cp[6] == c)	    return (__ptr_t) &cp[6];	  if (cp[5] == c)	    return (__ptr_t) &cp[5];	  if (cp[4] == c)	    return (__ptr_t) &cp[4];#endif	  if (cp[3] == c)	    return (__ptr_t) &cp[3];	  if (cp[2] == c)	    return (__ptr_t) &cp[2];	  if (cp[1] == c)	    return (__ptr_t) &cp[1];	  if (cp[0] == c)	    return (__ptr_t) cp;	}      n -= sizeof (longword);    }  char_ptr = (const unsigned char *) longword_ptr;  while (n-- > 0)    {      if (*--char_ptr == c)	return (__ptr_t) char_ptr;    }  return 0;}#ifdef weak_aliasweak_alias (__memrchr, memrchr)#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产欧美日韩另类综合| 亚洲国产成人私人影院tom| 国产精品99久久久久久久vr| 日韩国产高清在线| 日本中文在线一区| 美日韩黄色大片| 久久国产精品99精品国产| 久久精品国产成人一区二区三区| 亚洲国产精品欧美一二99| 最新国产の精品合集bt伙计| 亚洲乱码国产乱码精品精98午夜 | 国产资源在线一区| 国产中文一区二区三区| 激情综合色综合久久综合| 久久成人免费日本黄色| 麻豆精品精品国产自在97香蕉 | 亚洲va欧美va国产va天堂影院| 国产一区在线观看视频| 欧美日韩第一区日日骚| 亚洲曰韩产成在线| 一本大道av一区二区在线播放| 国产欧美一区二区在线| 久久精品国产99| 欧美一区二区精品久久911| 午夜视频在线观看一区二区 | 亚洲成人福利片| 欧美色网站导航| 亚洲午夜久久久久久久久久久 | 一区二区三区资源| 日本一区中文字幕 | 日韩精品一级二级| 欧美日韩一区二区三区高清 | 国产欧美一区二区三区鸳鸯浴 | 麻豆国产91在线播放| 日韩你懂的电影在线观看| 美女在线观看视频一区二区| 欧美一区二区三区影视| 免费一区二区视频| 欧美精品一区男女天堂| 福利电影一区二区| 中文字幕人成不卡一区| 一本到不卡免费一区二区| 亚洲午夜影视影院在线观看| 日本大香伊一区二区三区| 国产精品每日更新| 99久久精品国产毛片| 亚洲综合自拍偷拍| 欧美久久久久中文字幕| 精品一区二区日韩| 国产免费观看久久| 欧洲在线/亚洲| 免费观看在线综合| 久久久www成人免费毛片麻豆| 懂色av一区二区夜夜嗨| 亚洲精品乱码久久久久| 欧美一区二区成人| a在线欧美一区| 视频一区二区欧美| 国产日产欧美一区| 欧美丝袜丝交足nylons| 狠狠色狠狠色综合系列| 亚洲人精品午夜| 日韩午夜激情免费电影| 国产成人午夜视频| 亚洲一区免费视频| 2024国产精品视频| 在线观看不卡一区| 国产一区二区福利| 亚洲国产视频a| 国产精品网站在线| 在线电影院国产精品| 成人午夜免费av| 日本成人在线视频网站| **欧美大码日韩| 精品播放一区二区| 欧美怡红院视频| 福利一区二区在线观看| 蜜桃一区二区三区四区| 亚洲青青青在线视频| 日韩精品中文字幕一区二区三区| 91小视频免费看| 国产美女精品在线| 日韩高清一区二区| 亚洲小少妇裸体bbw| 国产精品久久久久久久岛一牛影视 | 亚洲欧美aⅴ...| 久久久另类综合| 欧美日韩视频第一区| 成人免费三级在线| 免费人成精品欧美精品| 亚洲成人动漫一区| 亚洲女厕所小便bbb| 国产亚洲一区二区在线观看| 在线不卡的av| 欧美日精品一区视频| 91视频在线观看免费| 国产麻豆成人传媒免费观看| 美女视频免费一区| 亚洲第一精品在线| 一区二区三区小说| 亚洲天堂2016| 亚洲欧洲精品一区二区三区| 国产午夜精品久久久久久久| 日韩欧美亚洲一区二区| 91精品视频网| 日韩三级免费观看| 91麻豆精品国产91久久久资源速度 | 91香蕉视频黄| 成人国产精品免费网站| 国产精品一线二线三线| 国产一区二区不卡| 久久99国产精品麻豆| 久久国产精品一区二区| 六月丁香综合在线视频| 日本vs亚洲vs韩国一区三区二区| 性做久久久久久| 婷婷综合久久一区二区三区| 亚洲国产sm捆绑调教视频| 亚洲一二三区视频在线观看| 亚洲成人动漫在线观看| 日本视频在线一区| 久久99精品久久只有精品| 激情综合网激情| 国产成人aaa| 91亚洲国产成人精品一区二三| 91日韩精品一区| 在线精品视频一区二区| 欧美精品tushy高清| 日韩免费看的电影| 久久久久久影视| 亚洲欧美在线高清| 午夜国产精品影院在线观看| 蜜桃精品视频在线观看| 国产精品一区二区在线观看网站| 国产成人精品免费在线| 色婷婷国产精品| 欧美一区二区女人| 国产日韩欧美精品一区| 一区二区三区四区激情| 麻豆成人在线观看| 成+人+亚洲+综合天堂| 欧美日韩中文字幕一区| 精品国产精品网麻豆系列| 国产精品久久久久久久岛一牛影视 | 粉嫩av一区二区三区| 91麻豆福利精品推荐| 欧美日韩高清影院| 国产欧美精品一区| 天天综合天天做天天综合| 国产夫妻精品视频| 欧美日韩精品专区| 国产性做久久久久久| 亚洲图片欧美色图| 国产成人免费在线观看不卡| 欧美色图免费看| 中文幕一区二区三区久久蜜桃| 亚洲国产综合91精品麻豆| 国产精品一区专区| 欧美精品在线观看播放| 国产精品理论片在线观看| 免费成人av资源网| 91蜜桃网址入口| 久久久噜噜噜久久人人看| 亚洲成人免费在线| 91在线精品秘密一区二区| 日韩你懂的在线播放| 亚洲成人av中文| 97se亚洲国产综合在线| 2020日本不卡一区二区视频| 亚洲成人午夜影院| 日本韩国欧美国产| 国产亚洲精品aa| 久久99精品国产.久久久久| 欧美日韩午夜在线视频| 日韩美女精品在线| 国产69精品久久久久毛片| 欧美电影免费提供在线观看| 亚洲成av人片一区二区| 色综合网色综合| 国产精品网站在线| 盗摄精品av一区二区三区| 精品久久久久久久久久久院品网| 亚洲午夜激情av| 欧美性猛片aaaaaaa做受| 亚洲女与黑人做爰| 色综合一区二区三区| 亚洲图片欧美激情| 91最新地址在线播放| 国产精品蜜臀在线观看| 国产99一区视频免费| 久久亚洲一区二区三区四区| 蜜臀91精品一区二区三区 | 国内国产精品久久| 欧美sm极限捆绑bd| 精品在线观看免费| 精品国产一区久久| 国产精品一区二区在线观看不卡| 久久众筹精品私拍模特| 国产成人亚洲精品狼色在线| 欧美激情中文字幕|