【问题标题】:In C: take a user in put and create a number of variables based on that input在 C 语言中:输入用户并根据该输入创建许多变量
【发布时间】:2022-01-13 00:38:03
【问题描述】:

我需要在 C 中模拟一个 n 路缓存。我有固定数量的块,并且基于用户想要的任何级别的关联性,我想根据该输入将缓存划分为多个集合。例如,如果我总共有 16 个块并且他们想要 2 路关联性,我想创建 8 个不同的数组,每个数组有 2 个元素。这在 C 中是否可行,还是我需要找到另一种方法来实现它?

【问题讨论】:

  • 是的,这在 C 中是可行的。选择正确的数据结构并对其实施适当的操作。
  • 您不会有 N 个变量,例如 x1x2x3。您可能会有一个 array,其中包含 x[1]x[2]x[3] 等元素。

标签: c variables user-input


【解决方案1】:

您正在尝试操作固定内存,因此最好的选择是使用指针。

如果可接受的用户输入是有限的,例如。 2,4,8 和 16,您可以使用 2,4,8 和 16 块 typedef 4 个结构。

typedef struct{
    int block;// replace type with appropriate block size
}Block;

typedef struct {
    Block b[2];
}TwoWay;

typedef struct {
    Block b[4];
}FourWay;

FourWay* p=&memory;
// Set0 - p
// Set1 - p+1
// Set2 - p+2 ...

您可以根据用户输入操作指针的数量或增量的数量。

或者,只需使用指针手动跳转到您需要的内存位置。编写一个地址解析函数,该函数将根据用户输入指向不同的位置。

【讨论】:

    猜你喜欢
    • 2016-10-03
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2018-03-12
    • 2021-08-30
    相关资源
    最近更新 更多