尚方宝剑之说
C语言实现闭包函数,可以参考《C语言接口与实现》一书,作者多次使用闭包,不过作者说的闭包应该指的是回调函数。和Java估计不大相同。比如下面的这个函数Table_map,其中的回调函数apply,可以在C中称为一个闭包。注:以上是作者的书中,中译本的说法~void Table_map(T table, void apply(const void *key, void **value, void *cl), void *cl) { int i; unsigned stamp; struct binding *p; assert(table); assert(apply); stamp = table->timestamp; for (i = 0; i < table->size; i++) for (p = table->buckets[i]; p; p = p->link) { apply(p->key, &p->value, cl); assert(table->timestamp == stamp); }}