2017-06-18 31 views
0

.h文件用於在c列表之前:Eror在C代碼:預期標識符或 '(' 'free_node_t' 與頭部

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

如何解決這個問題?

+2

'#define MEMSIZE(4096ull * 1024 * 1024)' – wildplasser

回答

3

你有句法錯誤

typedef *free_node_t mem_free_t; 

這應該是

typedef free_node_t *mem_free_t; 

但請不要typedef指針。我也相信後綴_t通常是保留的。

還要注意,4096*1024*1024不適合32位變量,不管它是什麼,並且可能不會像你想象的那樣繁殖。