开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 1 Fork 0

ThirdPartProject/dev86

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (4)
标签 (45)
master
lr-checks
msdos
release
v0.16.21
v0.16.20
v0.16.17
v0.16.18
v0.16.19
v0.16.12
v0.16.13
v0.16.14
v0.16.15
v0.16.16
v0.16.10
v0.16.11
v0.16.8
v0.16.9
v0.16.4
v0.16.5
v0.16.6
v0.16.7
v0.16.1
v0.16.2
master
分支 (4)
标签 (45)
master
lr-checks
msdos
release
v0.16.21
v0.16.20
v0.16.17
v0.16.18
v0.16.19
v0.16.12
v0.16.13
v0.16.14
v0.16.15
v0.16.16
v0.16.10
v0.16.11
v0.16.8
v0.16.9
v0.16.4
v0.16.5
v0.16.6
v0.16.7
v0.16.1
v0.16.2
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (4)
标签 (45)
master
lr-checks
msdos
release
v0.16.21
v0.16.20
v0.16.17
v0.16.18
v0.16.19
v0.16.12
v0.16.13
v0.16.14
v0.16.15
v0.16.16
v0.16.10
v0.16.11
v0.16.8
v0.16.9
v0.16.4
v0.16.5
v0.16.6
v0.16.7
v0.16.1
v0.16.2
dev86
/
cpp
/
hash.c
dev86
/
cpp
/
hash.c
hash.c 2.63 KB
一键复制 编辑 原始数据 按行查看 历史
Robert de Bath 提交于 2005年01月23日 22:31 +08:00 . Import Dev86src-0.16.17.tar.gz
#include <stdio.h>
#ifdef __STDC__
#include <stdlib.h>
#include <string.h>
#else
#include <malloc.h>
#endif
#include "cc.h"
/*
* Two functions:
* char * set_entry(int namespace, char * name, void * value);
* returns a pointer to the copy of the name;
*
* void * read_entry(int namespace, char * name);
* returns the value;
*/
struct hashentry
{
struct hashentry * next;
void * value;
int namespace;
char word[1];
};
struct hashentry ** hashtable;
int hashsize = 0xFF; /* 2^X -1 */
int hashcount = 0;
static int hashvalue P((int namespace, char * word));
void *
read_entry(namespace, word)
int namespace;
char * word;
{
int hash_val;
struct hashentry * hashline;
if( hashtable == 0 ) return 0;
hash_val = hashvalue(namespace, word);
hashline = hashtable[hash_val];
for(; hashline; hashline = hashline->next)
{
if(namespace != hashline->namespace) continue;
if(word[0] != hashline->word[0]) continue;
if(strcmp(word, hashline->word) ) continue;
return hashline->value;
}
return 0;
}
char *
set_entry(namespace, word, value)
int namespace;
char * word;
void * value;
{
int hash_val, i;
struct hashentry * hashline, *prev;
hash_val = hashvalue(namespace, word);
if( hashtable )
{
hashline = hashtable[hash_val];
for(prev=0; hashline; prev=hashline, hashline = hashline->next)
{
if(namespace != hashline->namespace) continue;
if(word[0] != hashline->word[0]) continue;
if(strcmp(word, hashline->word) ) continue;
if( value ) hashline->value = value;
else
{
if( prev == 0 ) hashtable[hash_val] = hashline->next;
else prev->next = hashline->next;
free(hashline);
return 0;
}
return hashline->word;
}
}
if( value == 0 ) return 0;
if( hashtable == 0 )
{
hashtable = malloc((hashsize+1)*sizeof(char*));
if( hashtable == 0 ) cfatal("Out of memory");
for(i=0; i<=hashsize; i++) hashtable[i] = 0;
}
/* Add record */
hashline = malloc(sizeof(struct hashentry)+strlen(word));
if( hashline == 0 ) cfatal("Out of memory");
else
{
hashline->next = hashtable[hash_val];
hashline->namespace = namespace;
hashline->value = value;
strcpy(hashline->word, word);
hashtable[hash_val] = hashline;
}
return hashline->word;
}
static int hashvalue(namespace, word)
int namespace;
char * word;
{
int val = namespace;
char *p = word;
while(*p)
{
val = ((val<<4)^((val>>12)&0xF)^((*p++)&0xFF));
}
val &= hashsize;
return val;
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

C compiler, assembler and linker environment for the production of 8086 executables
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ThirdPartProject/dev86.git
git@gitee.com:ThirdPartProject/dev86.git
ThirdPartProject
dev86
dev86
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /