c - C代码错误: expected identifier or ‘(’ before ‘free_node_t’

标签 c list struct operating-system

.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/

相关文章:

Javascript 在对象和变量中使用列表项

json - 解析 JSON 对象后打印选定字段时出错

创建我自己的重定向和重复管道函数

c - C语言中从socket读取数据

c++ - 如何从 std::list 中删除一个元素?

c# - 如何将结构定义为属性?

struct - 结构是否实现了其嵌入类型之一实现的所有接口(interface)?

c - 如何在 C 中编辑 char* 字符串的值?

c - 修改双指针而不使用memset

list - Flutter List行为不符合预期