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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hash.h

?? 彭國倫書上的所有原代碼
?? H
字號:
/* Hash tables for Objective C method dispatch.   Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc.This file is part of GNU CC.GNU CC is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.GNU CC is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU CC; see the file COPYING.  If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330,Boston, MA 02111-1307, USA.  *//* As a special exception, if you link this library with files   compiled with GCC to produce an executable, this does not cause   the resulting executable to be covered by the GNU General Public License.   This exception does not however invalidate any other reasons why   the executable file might be covered by the GNU General Public License.  */#ifndef __hash_INCLUDE_GNU#define __hash_INCLUDE_GNU#include <stddef.h>#include <objc/objc.h>/* * This data structure is used to hold items *  stored in a hash table.  Each node holds  *  a key/value pair. * * Items in the cache are really of type void *. */typedef struct cache_node{  struct cache_node *next;	/* Pointer to next entry on the list.				   NULL indicates end of list. */  const void *key;		/* Key used to locate the value.  Used				   to locate value when more than one				   key computes the same hash				   value. */  void *value;			/* Value stored for the key. */} *node_ptr;/* * This data type is the function that computes a hash code given a key. * Therefore, the key can be a pointer to anything and the function specific * to the key type.  * * Unfortunately there is a mutual data structure reference problem with this * typedef.  Therefore, to remove compiler warnings the functions passed to * hash_new will have to be casted to this type.  */typedef unsigned int (*hash_func_type)(void *, const void *);/* * This data type is the function that compares two hash keys and returns an * integer greater than, equal to, or less than 0, according as the first * parameter is lexicographically greater than, equal to, or less than the * second.  */typedef int (*compare_func_type)(const void *, const void *);/* * This data structure is the cache. * * It must be passed to all of the hashing routines *   (except for new). */typedef struct cache{  /* Variables used to implement the hash itself.  */  node_ptr *node_table; /* Pointer to an array of hash nodes.  */  /* Variables used to track the size of the hash table so to determine    when to resize it.  */  unsigned int size; /* Number of buckets allocated for the hash table			(number of array entries allocated for			"node_table").  Must be a power of two.  */  unsigned int used; /* Current number of entries in the hash table.  */  unsigned int mask; /* Precomputed mask.  */  /* Variables used to implement indexing through the hash table.  */  unsigned int last_bucket; /* Tracks which entry in the array where			       the last value was returned.  */  /* Function used to compute a hash code given a key.      This function is specified when the hash table is created.  */  hash_func_type    hash_func;  /* Function used to compare two hash keys to see if they are equal.  */  compare_func_type compare_func;} *cache_ptr;/* Two important hash tables.  */extern cache_ptr module_hash_table, class_hash_table;/* Allocate and initialize a hash table.  */ cache_ptr hash_new (unsigned int size,		    hash_func_type hash_func,		    compare_func_type compare_func);                       /* Deallocate all of the hash nodes and the cache itself.  */void hash_delete (cache_ptr cache);/* Add the key/value pair to the hash table.  If the   hash table reaches a level of fullness then it will be resized.                                                       assert if the key is already in the hash.  */void hash_add (cache_ptr *cachep, const void *key, void *value);     /* Remove the key/value pair from the hash table.     assert if the key isn't in the table.  */void hash_remove (cache_ptr cache, const void *key);/* Used to index through the hash table.  Start with NULL   to get the first entry.                                                     Successive calls pass the value returned previously.   ** Don't modify the hash during this operation ***                                                      Cache nodes are returned such that key or value can   be extracted.  */node_ptr hash_next (cache_ptr cache, node_ptr node);/* Used to return a value from a hash table using a given key.  */void *hash_value_for_key (cache_ptr cache, const void *key);/* Used to determine if the given key exists in the hash table */BOOL hash_is_key_in_hash (cache_ptr cache, const void *key);/************************************************        Useful hashing functions.                  Declared inline for your pleasure.        ************************************************//* Calculate a hash code by performing some    manipulation of the key pointer.  (Use the lowest bits   except for those likely to be 0 due to alignment.)  */static inline unsigned inthash_ptr (cache_ptr cache, const void *key){  return ((size_t)key / sizeof (void *)) & cache->mask;}/* Calculate a hash code by iterating over a NULL    terminate string.  */static inline unsigned int hash_string (cache_ptr cache, const void *key){  unsigned int ret = 0;  unsigned int ctr = 0;                  while (*(char*)key) {    ret ^= *(char*)key++ << ctr;    ctr = (ctr + 1) % sizeof (void *);  }  return ret & cache->mask;}/* Compare two pointers for equality.  */static inline int compare_ptrs (const void *k1, const void *k2){  return !(k1 - k2);}/* Compare two strings.  */static inline int compare_strings (const void *k1, const void *k2){  if (k1 == k2)    return 1;  else if (k1 == 0 || k2 == 0)    return 0;  else    return !strcmp (k1, k2);}#endif /* not __hash_INCLUDE_GNU */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产拍欧美日韩视频二区| 国产视频一区不卡| 一区二区三区在线视频观看58| 国产精品456| 欧美激情自拍偷拍| 色婷婷久久久亚洲一区二区三区| 亚洲在线成人精品| 欧美一区二区三区婷婷月色| 老司机精品视频导航| 久久久久一区二区三区四区| 9人人澡人人爽人人精品| 一区二区三区四区在线免费观看 | 欧美日本一区二区在线观看| 精品国产一区二区三区久久影院| 依依成人精品视频| 99国产精品久久久久久久久久| 国产激情一区二区三区桃花岛亚洲| 亚洲国产精品欧美一二99| 日本一区二区三区四区| 精品日产卡一卡二卡麻豆| 欧美大片在线观看一区二区| 久久蜜桃av一区精品变态类天堂 | 91精品在线观看入口| 三级欧美韩日大片在线看| 欧美日韩五月天| 99re视频精品| 成人黄动漫网站免费app| 成人国产精品视频| 91小宝寻花一区二区三区| 在线观看视频一区二区| 欧美挠脚心视频网站| 欧美一区二区三区不卡| 精品国产在天天线2019| 国产日产精品一区| **欧美大码日韩| 一区二区激情视频| 蜜臀a∨国产成人精品| 国内精品写真在线观看| 色综合天天综合狠狠| 欧美视频在线一区| 久久久精品欧美丰满| 中文字幕高清一区| 亚洲影院久久精品| 亚洲3atv精品一区二区三区| 美国欧美日韩国产在线播放 | 精品久久人人做人人爰| 99综合电影在线视频| 91视频com| 日韩一区二区免费视频| 国产欧美一区二区三区在线看蜜臀| 亚洲三级在线播放| 亚洲激情网站免费观看| 五月婷婷综合网| 老司机午夜精品99久久| a美女胸又www黄视频久久| 欧美中文字幕一区| 欧美大片在线观看一区二区| 亚洲日本护士毛茸茸| 三级久久三级久久| 91丨porny丨首页| 91精品国产91久久综合桃花| 国产日韩精品视频一区| 亚洲国产毛片aaaaa无费看| 国产在线国偷精品产拍免费yy| 91免费观看在线| 欧美日韩国产美| 国产精品美女久久福利网站| 同产精品九九九| 老司机精品视频在线| 欧美一区国产二区| www亚洲一区| 一区二区在线免费观看| 麻豆高清免费国产一区| 欧美日韩情趣电影| 久久久久99精品国产片| 一区二区在线观看视频| 成人一区在线观看| 91精品国产欧美一区二区| 亚洲欧美国产77777| 激情综合五月天| 欧美久久久久久久久| 国产精品午夜在线| 激情国产一区二区| 欧美精品久久久久久久多人混战| 亚洲人成网站精品片在线观看| 玖玖九九国产精品| 777欧美精品| 一区二区三区在线视频播放| av一区二区久久| 91精品黄色片免费大全| 国产专区欧美精品| 国产呦萝稀缺另类资源| 91精品欧美综合在线观看最新 | 亚洲欧美在线另类| 九九在线精品视频| 欧美精品一卡二卡| 日韩av电影天堂| 欧美美女一区二区三区| 日韩美女视频一区| 国产乱人伦精品一区二区在线观看 | 制服丝袜亚洲色图| 亚洲一区中文在线| 欧美日韩一区二区在线观看| 99久久国产综合色|国产精品| 色乱码一区二区三区88| 日韩精品1区2区3区| 99精品视频在线观看| 日韩视频一区二区三区| 日韩制服丝袜av| 欧美成人高清电影在线| 色综合色狠狠综合色| 色噜噜夜夜夜综合网| 欧美精品色一区二区三区| 97se狠狠狠综合亚洲狠狠| 欧美国产成人精品| 亚洲成人免费视频| 欧美日本视频在线| 亚洲精品高清在线| 欧美午夜寂寞影院| 夜夜揉揉日日人人青青一国产精品| 91黄色免费版| 亚洲欧美成人一区二区三区| 91丨九色丨国产丨porny| 国产精品理论在线观看| 国产毛片精品一区| 91精品国产91热久久久做人人 | 色综合天天视频在线观看| 亚洲自拍另类综合| 日韩久久久精品| 欧美不卡视频一区| 成人av影院在线| 美女视频黄a大片欧美| 亚洲欧洲精品一区二区三区| 国产亚洲欧美一级| 91精品国产色综合久久久蜜香臀| 欧美一区二区三区视频在线观看| 国产精品午夜免费| 蜜桃视频一区二区三区在线观看| 精久久久久久久久久久| a级精品国产片在线观看| 国产综合色精品一区二区三区| 欧美一级午夜免费电影| 欧美一区二区三区婷婷月色| 日韩欧美你懂的| 国产日产欧美一区二区三区| 亚洲蜜臀av乱码久久精品| 亚洲摸摸操操av| 另类的小说在线视频另类成人小视频在线 | 中文字幕中文在线不卡住| 久久九九国产精品| 日本在线不卡一区| 91精品国产免费| 亚洲韩国一区二区三区| 成人精品gif动图一区| 日韩欧美一卡二卡| 一级女性全黄久久生活片免费| 国产乱码精品1区2区3区| 欧美性猛交xxxxxxxx| 亚洲婷婷综合色高清在线| 国产盗摄精品一区二区三区在线| 日韩欧美激情一区| 麻豆视频一区二区| 91美女福利视频| 欧美激情在线看| 国产激情91久久精品导航 | 欧美系列亚洲系列| 欧美韩日一区二区三区四区| 欧美色爱综合网| 欧美电影一区二区三区| 欧美久久一区二区| 91精品国产乱| 国产精品乱码妇女bbbb| 一色屋精品亚洲香蕉网站| 免费成人在线视频观看| 看电影不卡的网站| 国产在线一区观看| 久久精品视频一区二区三区| 精品视频在线免费| 国产成人亚洲综合a∨猫咪| 免费高清在线视频一区·| 欧美国产欧美综合| 日韩精品专区在线影院重磅| 成人网在线播放| 亚洲成a人片在线不卡一二三区| 国产午夜精品一区二区| 在线成人小视频| 色哟哟在线观看一区二区三区| 看电影不卡的网站| 欧美日韩精品一区二区三区| 国产一区二区三区电影在线观看| 亚洲va欧美va人人爽| 国产精品热久久久久夜色精品三区| 精品国产一区二区三区不卡 | 99久久国产综合精品色伊| 国产精品18久久久久久久久久久久| 亚洲图片有声小说| 亚洲视频香蕉人妖| 欧美国产综合一区二区| 欧美三级中文字幕| av综合在线播放|