collectn.c

来自「开源的nasm编译器源码,研究编译器原理很有帮且」· C语言 代码 · 共 41 行

C
41
字号
/* collectn.c	Implements variable length pointer arrays [collections] * * This file is public domain. */#include "collectn.h"#include <stdlib.h>void collection_init(Collection * c){  int i;  for (i = 0; i < 32; i++) c->p[i] = NULL;  c->next = NULL;}void ** colln(Collection * c, int index){  while (index >= 32) {    index -= 32;    if (c->next == NULL) {      c->next = malloc(sizeof(Collection));      collection_init(c->next);    }    c = c->next;  }  return &(c->p[index]);}void collection_reset(Collection *c){  int i;  if (c->next) {    collection_reset(c->next);    free(c->next);  }  c->next = NULL;  for (i = 0; i < 32; i++) c->p[i] = NULL;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?