c代码中的Eror:预期标识符或‘;(’;之前‘;自由节点’;
c代码中的Eror:预期标识符或‘;(’;之前‘;自由节点’;,c,list,struct,operating-system,C,List,Struct,Operating System,.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
.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
#ifndef SO605_GC
#定义SO605_GC
#包括
#定义MEMSIZE 4096*1024*1024
typedef结构自由_节点{
大小;
结构自由_节点*下一步;
}自由节点;
typedef*free_node_t mem_free_t;
void*aloca(大小);
无效自由(无效*ptr);
#恩迪夫
编译时会出现以下错误:
aloca.h:14:10:错误:应为“free\u node\t”之前的标识符或“(”
typedef*free_node_t mem_free_t
如何解决此问题?您在中遇到语法错误
typedef *free_node_t mem_free_t;
应该是哪一个
typedef free_node_t *mem_free_t;
但是请不要使用typedef
指针。我还认为后缀\u t
通常是保留的
还要注意的是,
4096*1024*1024
将不适合32位变量,不管它是什么用途,并且可能不会像您认为的那样进行乘法。中存在语法错误
typedef *free_node_t mem_free_t;
应该是哪一个
typedef free_node_t *mem_free_t;
但是请不要使用typedef
指针。我还认为后缀\u t
通常是保留的
还要注意的是,4096*1024*1024
不适合32位变量,不管它是什么,并且可能不会像您认为的那样进行乘法。\define MEMSIZE(4096ull*1024*1024)
\define MEMSIZE(4096ull*1024*1024)