使用 C 尝试内存管理

在之前苦读『垃圾回收的算法与实现』,也想着什么时候能够自己手动实现一把。加上自己对 redis 也还是算熟悉,也是知道他的内存碎片问题的严重性。所以,就想着这两者结合看看能有什么好玩的地方。

首先就是,如何进行内存的管理。众所周知,C 的内存管理通…

Makefile 的多目录结构写法

因为最近迷上了 C 语言。所以开始进行的一些项目的编写都是采用的 C 语言。这么就会带来一个小的问题,就是 makefile 的写法问题。

比如一个目录结构是这样的:

.
├── LICENSE
├── ReadMe.md
├── TODO.md
├── makefile

如何阅读 C 语言的声明

众所周知,C 语言的一大难点就在于变量声明。 比如说如下的几个例子:

  • char* const *(*next)();
  • char *(*c[10])(int **p);
  • void (*signal(int, void(*)(int)))(int);

基本上每一个都是…

JSON 解析器

这篇博客主要是最近开始玩 C,所以准备找个东西练手,突然发现,顺手写个 JSON 解析器吧。于是就开始了。

相对于其他比较成熟的上层语言。C 主要的问题就是没有基础的数据结构,而且相对于弱类型语言而言,C 的类型在解析的时候有个类型转换的坑。但是相对于

C 的假装 OOP 写法

之前微博上说 C 的一个好处就是没有什么是一个 void* 解决不了的,然后因为自己用 C 写一个小程序,遇到了一个问题,就是因为 C 是强类型,但是如果需要写一个相对通用的数据结构。这个稍微有点麻烦。

比如说,hashmap,我们常用的都是 <stri

VIM 浏览器预览插件

插件的地址:GITHUB.

写这个插件的原因很简单。因为之前一直再写一个页面,因为在主力的编辑器是 VIM,所以就顺手用了。但是遇到一个很尴尬的地方,就是在想观看编写的效果的时候,常常会需要使用 Finder,然后进入当前的工作目录,然后双击 ht…

Android Webview 加载额外 CSS

这个需求也是挺好玩的。主要是因为女朋友用的一个 APP,是城市里面的一个实时公交的 APP。但是作为一个会点代码的人,一看到这么一个 APP,第一反应是,为什么这种粗制滥造的 APP 可以存活于世,而且还是政府单位发布的。
本着,吐槽一个东西,就要拿出…