在C中定义typedef时出错

在C中定义typedef时出错,c,gcc,typedef,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行等表示缓存形式的代码。

我试图在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行等表示缓存形式的代码。图中所示为块的数组,第12-43行


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

typedef
一次只能处理一种类型, 这里有两种类型
unsigned
int32\u t
, 您不能编写类似于
无符号int32\t
无符号/有符号
的东西 仅适用于
char
short
int
long
。 所以正确的路线应该是

typedef unt32_t mem_address;

尝试
uint32\u t
而不是
unsigned int32\u t
。不要不必要地发布图像。Post text.this行:
typedef未签名的int32内存地址包含冲突。建议:
typedef uint32成员地址如果发布的代码正确,则应定义
缓存
。因为编译器说它没有定义,所以我们需要实际的代码。请发布实际代码。这已经解决了问题,我会尽快接受你的答案。