.h
带有标题的文件,用于在 c
中创建列表:
#ifndef SO605_GC
#define SO605_GC
#include <stddef.h>
#define MEMSIZE 4096*1024*1024
typedef struct free_node {
size_t size;
struct free_node *next;
} free_node_t;
typedef *free_node_t mem_free_t;
void *aloca(size_t size);
void libera(void *ptr);
#endif
当我编译时出现错误:
aloca.h:14:10:错误:预期标识符或“free_node_t”之前的“(” typedef *free_node_t mem_free_t;
如何解决这个问题?
您的语法错误
typedef *free_node_t mem_free_t;
应该是
typedef free_node_t *mem_free_t;
但请不要
typedef
指点。我还相信后缀 _t
通常是保留的。
还要注意,
4096*1024*1024
不适合 32 位变量,无论它的用途是什么,并且可能不会像您想象的那样相乘。