我试图在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,因为它们的定义方式与代码最后一行中显示的缓存完全相同,因此错误是相同的。我不明白我做错了什么。
答案 0 :(得分:2)
typedef
一次只能处理一种类型,
这里有两种类型unsigned
和int32_t
,
你写不出像unsinged int32_t
,unsigned/signed
这样的东西
仅限char
,short
,int
和long
。
所以右线是
typedef unt32_t mem_address;