您的位置:首页 > 理论基础 > 计算机网络

TCPL——练习6.5 & 6.6

2010-11-23 01:13 246 查看
  这两道习题综合起来是利用散列表写个适用C语言的简单#define处理器,只能处理#define/#undef不带参数的情形,并且#define后面必须带值。不带值其实也就是加多一个处理,分辨#define语句是否已经结束。这里输入代码我用的是TCPL的getch, ungetch,其实本应该直接读入一个C文件,可是这里我偷懒了。读入文件的话处理代码差别也不大。我把代码分为几个模块:

hash.c:散列表相关代码

io.c:输入输出相关代码

main.c:测试

  以下是代码hash.h:保留三个借口给其他模块调用

#ifndef HASH_H
#define HASH_H

struct nlist;

struct nlist *install(char *name, char *defn);
int undef(char *name);
void print(void);

#endif


散列表实现文件:

代码

ken@Linux:~/TCPL/chap6/hash$ ./main
#include <stdio.h>

#define A 100
#define B 200
#define C 300

#undef A
in #undef.
only one node
name:             defn:
name: B           defn: 200
name: C           defn: 300
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: