.h
文件,包含用于在 c
中创建列表的 header :
#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: error: expected identifier or ‘(’ before ‘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 位变量,无论它是什么,而且可能不会像您想象的那样相乘。
关于c - C代码错误: expected identifier or ‘(’ before ‘free_node_t’ ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44616160/