Archive

Posts Tagged ‘c’

推荐个 C 库 sglib

April 8th, 2010 2 comments

SGLIB – A Simple Generic Library for C 完全用宏实现,只有一个头文件。提供了如下功能:

  • sorting arrays
  • manipulating linked lists
  • manipulating sorted linked lists
  • manipulating double linked lists
  • manipulating red-black trees
  • manipulating hashed containers

网页提供的下载链接地址不对,提供个sourceforge的下载地址。下载的 tarball 里有 sample 和 doc,看下就知道怎么用了。

一个我比较喜欢的特点是数据结构完全由用户自己定义,sglib 帮你生成操作数据结构的宏,函数声明以及定义。这样做的好处是不需要因为使用库而对数据结构做修改。相比 queue.h,我觉得 sglib 的更容易使用和理解,而且有更多功能。

Tags: ,

Ch — 一个 C/C++ 解释器

November 5th, 2009 No comments

动态语言很重要的一个功能就是支持交互式的开发,用惯了 Python 有时候非常希望 C 也能有一个解释器来用,尤其是忘了 C 的某些语法想写个简单的例子来测试的时候。

很久以前就搜过 C 的解释器,搜到过 Ch,不记得当时为什么没有试用过。今天下了个免费版本的用了下,很不错,支持 C90 和 C99 的主要功能,C++ 支持不完全(不过 C++ 我基本不关心)。

以前想要测试 C 的某个语法功能时会写个文件,int main 什么的搞一堆,然后用 tcc (Tiny C Compiler) 来测试。tcc 可以把 C 代码的编译和执行放在一步完成,执行 tcc -run foo.c 就可以看到效果了,还算方便。

用 Ch 就更方便了。ch 命令出来个交互式的 shell,输入 C 代码马上执行,调 printf 直接看到效果,输入变量就可以看到它的值(struct 的话可以看到每个成员的值),做点小的测试就不需要写 int main 之类的了。另外 ch 还有函数名补全。