在C中定义typedef时出错

时间:2015-11-14 23:07:46

标签: c gcc typedef

我试图在C中定义缓存,我首先定义以下

typedef unsigned int32_t mem_address;

typedef struct {
int val;
mem_address tag;
} block;


typedef struct {
block *array_of_blocks;
} cache_whole;

然后在最后一行代码中初始化一个新缓存。

cache_whole cache;

但是,我的编译器会抛出这些错误。

第135,137,138行等引用cache.array_of_blocks形式的代码,第12-43行是显示的代码。

忽略instruction_cache和data_cache,因为它们的定义方式与代码最后一行中显示的缓存完全相同,因此错误是相同的。我不明白我做错了什么。

1 个答案:

答案 0 :(得分:2)

typedef一次只能处理一种类型, 这里有两种类型unsignedint32_t, 你写不出像unsinged int32_tunsigned/signed这样的东西 仅限charshortintlong。 所以右线是

typedef unt32_t mem_address;