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

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

?? hash.h

?? gcc-2.95.3 Linux下最常用的C編譯器
?? 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 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲www啪成人一区二区麻豆| 国产精品乱子久久久久| 国产三级久久久| 天涯成人国产亚洲精品一区av| 久久97超碰色| 欧美日韩国产免费| 中文字幕的久久| 精品一区二区三区不卡| 欧美系列日韩一区| 国产精品第四页| 高清在线成人网| 精品国产精品网麻豆系列| 亚洲成在人线在线播放| 色菇凉天天综合网| 国产精品乱码一区二区三区软件 | 欧美日韩精品一区二区| 亚洲国产精品成人综合色在线婷婷| 日韩和欧美的一区| 欧美亚洲动漫另类| 亚洲精品国久久99热| 99久久免费国产| 国产精品久久午夜夜伦鲁鲁| 国产精品亚洲综合一区在线观看| 欧美mv日韩mv| 久久www免费人成看片高清| 91精品国产色综合久久不卡蜜臀| 亚洲影院免费观看| 欧洲精品在线观看| 亚洲一区二区视频在线| 26uuu久久天堂性欧美| 国产女主播在线一区二区| 久久精品国产亚洲高清剧情介绍 | 97久久超碰精品国产| 久久久精品欧美丰满| 久久99久久99小草精品免视看| 欧美精品在线观看一区二区| 午夜视频在线观看一区二区| 欧美美女一区二区三区| 香蕉影视欧美成人| 日韩精品专区在线影院观看| 精品一区在线看| 久久精品亚洲一区二区三区浴池 | 蜜臀av一级做a爰片久久| 欧美日韩一区二区三区四区五区 | 欧美伊人精品成人久久综合97| 亚洲三级免费电影| 在线视频你懂得一区二区三区| 亚洲一二三区在线观看| 欧美一区二区三区四区高清| 狠狠色丁香久久婷婷综| 久久新电视剧免费观看| 成人动漫中文字幕| 亚洲成人精品在线观看| 精品理论电影在线| av电影天堂一区二区在线观看| 亚洲综合999| 欧美xxx久久| 99久久精品免费看国产免费软件| 亚洲激情成人在线| 欧美成人欧美edvon| av资源网一区| 日本美女视频一区二区| 久久蜜桃av一区精品变态类天堂| 91免费在线播放| 美国毛片一区二区| 国产精品国产三级国产普通话三级| 欧美亚洲国产一区在线观看网站| 美腿丝袜亚洲一区| 亚洲视频一区二区在线观看| 9191成人精品久久| 99久久99久久精品免费看蜜桃| 香港成人在线视频| 毛片av中文字幕一区二区| 欧美成人精品福利| a在线播放不卡| 美腿丝袜亚洲综合| 亚洲狠狠丁香婷婷综合久久久| 日韩一区二区在线观看| 色综合网站在线| 国产在线精品一区二区三区不卡 | 色爱区综合激月婷婷| 久久99精品一区二区三区 | 欧美另类一区二区三区| 国产福利91精品一区二区三区| 一区二区三区波多野结衣在线观看| 亚洲精品一区二区三区四区高清| 91美女在线看| 日本午夜精品视频在线观看| 免费一级片91| 欧美国产激情一区二区三区蜜月 | 国产精品久久久久久久久免费相片| 日本高清不卡一区| 成av人片一区二区| 国产乱码精品一区二区三区忘忧草| 亚洲高清免费在线| 亚洲欧美另类小说| 国产女同互慰高潮91漫画| 日韩欧美国产wwwww| 欧美日韩你懂得| 欧美自拍丝袜亚洲| www.在线欧美| 成人h精品动漫一区二区三区| 久久99深爱久久99精品| 日本欧美在线看| 日韩主播视频在线| 亚洲高清视频中文字幕| 亚洲精品五月天| 日韩理论电影院| 亚洲天堂a在线| 亚洲视频1区2区| 亚洲三级理论片| 欧美经典一区二区| 国产偷国产偷亚洲高清人白洁 | 国产成人精品免费网站| 六月丁香综合在线视频| 蜜桃视频免费观看一区| 蜜臀av性久久久久蜜臀aⅴ | 欧美在线影院一区二区| 91小视频在线免费看| 色综合久久中文字幕| 色综合久久六月婷婷中文字幕| 色综合中文字幕| 在线看不卡av| 91精品国产综合久久香蕉麻豆| 51久久夜色精品国产麻豆| 日韩美一区二区三区| 精品国产精品一区二区夜夜嗨| 久久久99久久精品欧美| 国产欧美日韩在线看| 亚洲欧洲美洲综合色网| 亚洲免费在线观看| 亚洲制服丝袜av| 奇米影视一区二区三区| 极品美女销魂一区二区三区| 国产成人精品一区二区三区四区| 成人精品国产福利| 在线国产亚洲欧美| 日韩欧美在线观看一区二区三区| www国产成人免费观看视频 深夜成人网| 欧美成人性战久久| 一色屋精品亚洲香蕉网站| 一区二区三区波多野结衣在线观看| 天天色 色综合| 久久99蜜桃精品| www.一区二区| 欧美精三区欧美精三区| 久久精品视频在线看| 玉足女爽爽91| 国产美女av一区二区三区| 99精品欧美一区| 欧美一区午夜视频在线观看| 国产欧美日产一区| 午夜免费欧美电影| 国产99久久久久| 欧美精品在线一区二区三区| 国产亚洲精品bt天堂精选| 亚洲综合av网| 日本欧美加勒比视频| 这里只有精品99re| 久久精品亚洲乱码伦伦中文| 亚洲激情在线播放| 国产麻豆日韩欧美久久| 在线观看视频91| 久久精品在这里| 日韩黄色片在线观看| 99精品视频一区| 亚洲精品在线免费播放| 亚洲成人自拍一区| eeuss鲁片一区二区三区在线观看| 欧美丰满少妇xxxxx高潮对白| 亚洲国产成人午夜在线一区| 日本不卡视频在线| 在线观看一区二区视频| 国产欧美一区二区三区在线看蜜臀 | 成人中文字幕合集| 欧美电影免费观看高清完整版在线观看| 《视频一区视频二区| 国产黄色精品网站| 日韩精品一区二区三区蜜臀 | 亚洲成人av电影| 国产成人综合在线播放| 欧美一区二区三区影视| 亚洲精品国产无天堂网2021| 成人av在线资源| 久久久久久久久久久电影| 麻豆一区二区三| 91精品国产91综合久久蜜臀| 亚洲愉拍自拍另类高清精品| 91蜜桃在线观看| 亚洲天堂久久久久久久| 99精品欧美一区二区三区小说| 久久精子c满五个校花| 狠狠网亚洲精品| 精品国产免费人成在线观看| 日日欢夜夜爽一区| 7777精品伊人久久久大香线蕉| 亚洲午夜激情av| 欧美系列在线观看| 五月综合激情婷婷六月色窝| 欧美色窝79yyyycom|