在C中定义typedef时出错
我试图在C中定义缓存,我首先定义以下内容在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行等表示缓存形式的代码。
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成员地址代码>如果发布的代码正确,则应定义缓存。因为编译器说它没有定义,所以我们需要实际的代码。请发布实际代码。这已经解决了问题,我会尽快接受你的答案。