c 代码中的错误:预期标识符或“free_node_t”之前的“(”

问题描述 投票:0回答:1

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

如何解决这个问题?

c list struct operating-system
1个回答
3
投票

您的语法错误

typedef *free_node_t mem_free_t;

应该是

typedef free_node_t *mem_free_t;

但请不要

typedef
指点。我还相信后缀
_t
通常是保留的。

还要注意,

4096*1024*1024
不适合 32 位变量,无论它的用途是什么,并且可能不会像您想象的那样相乘。

© www.soinside.com 2019 - 2024. All rights reserved.