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:保留三个借口给其他模块调用
散列表实现文件:
代码
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
相关文章推荐
- TCPL——练习1.13
- 在一个文件集合中查找匹配模式的行 (TCPL,练习7-7)
- 第十五章 15.6节练习 & 15.7.1节练习
- <机器学习练习>高斯判别分析GDA
- 03-redhat-6.5升级python2.6到python2.7&安装psycopg2&连接postgresql-9.6.1(201-02-07)
- HTML&CSS布局练习---360导航页面
- CentOS 6.5 YUM软件包工具配置&Wireshark安装&git安装
- 背包系列练习及总结(hud 2602 && hdu 2844 Coins && hdu 2159 && poj 1170 Shopping Offers && hdu 3092 Least common multiple && poj 1015 Jury Compromise)
- centos6.5、centos6.6修改ssh默认端口号
- vnc ubuntu14.0 远程连接 center'os6.5
- 第一章 1.4.2节练习 & 1.4.3节练习
- Day1 & Day2_c语言_基础练习
- CUDA系列学习(三)GPU设计与结构QA & coding练习
- Ubuntu14.04 & CentOS6.5 编译安装Apache & PHP5.6
- hive学习练习&Sqoop知识补充
- 华为机试练习---找出数组中的"支配者"
- 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩
- 第7周 C语言程序设计(新2版) 练习2-2 不用&&或||,写一个等价的for循环的程序
- 第十二章 12.1.4节练习 & 12.1.5节练习
- CentOS6.5 上 DHCP 不能启动 Can't chown new lease file: Operation not permitted