⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpphash.h

📁 GCC编译器源代码
💻 H
字号:
/* different kinds of things that can appear in the value field   of a hash node.  Actually, this may be useless now. */union hashval {  int ival;  char *cpval;  DEFINITION *defn;#if 0  KEYDEF *keydef;#endif};struct hashnode {  struct hashnode *next;	/* double links for easy deletion */  struct hashnode *prev;  struct hashnode **bucket_hdr;	/* also, a back pointer to this node's hash				   chain is kept, in case the node is the head				   of the chain and gets deleted. */  enum node_type type;		/* type of special token */  int length;			/* length of token, for quick comparison */  U_CHAR *name;			/* the actual name */  union hashval value;		/* pointer to expansion, or whatever */};typedef struct hashnode HASHNODE;/* Some definitions for the hash table.  The hash function MUST be   computed as shown in hashf () below.  That is because the rescan   loop computes the hash value `on the fly' for most tokens,   in order to avoid the overhead of a lot of procedure calls to   the hashf () function.  Hashf () only exists for the sake of   politeness, for use when speed isn't so important. */#define HASHSIZE 1403static HASHNODE *hashtab[HASHSIZE];#define HASHSTEP(old, c) ((old << 2) + c)#define MAKE_POS(v) (v & 0x7fffffff) /* make number positive */extern HASHNODE *install PARAMS ((U_CHAR *,int,enum node_type, int,char *,int));

⌨️ 快捷键说明

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