循环精确模型指针和数组

标签 c arrays pointers

我目前正在使用流水线技术为 RISC 处理器开发一个周期精确模型。我使用讲师的一些代码示例编写了管道衬里方法的代码,但它不起作用。我对以下功能有点困惑:

void rf (int RS1, int RS2, int RD, dramcmdT cmd1, dramcmdT cmd2, dramcmdT cmd3, int din, int *dout1, int *dout2) 
{
    static int array[32];

    if (cmd1 == RD) 
        *dout1 = array[RS1];
    if (cmd2 == RD) 
        *dout2 = array[RS2];
    if (cmd3 == WR) 
        array[RD] = din;
}

RS1、RS2、RD 是我发送的一些整数值,cmd1 和 cmd2 始终为 RD,cmd3 始终为 WR。所以基本上所有的 if 语句都应该被执行,但它们没有。我在 dout1 和 dout2 中总是得到零。我问我的讲师 *dout1 = array[RS1] 是否是正确的表示法,他说这是正确的,但我不明白它的作用是什么以及为什么我在 doout1 和 dout2 中得到零?有人熟悉这个符号吗?

最佳答案

如何设置数组中的值?唯一可以写入的值是array[RD]。根据您的描述,RD 是一个常量。因此,您只能初始化数组的一个元素。

或者,RD 不是常量,在这种情况下,cmd1 == RDcmd2 == RD 是关于什么的?

重复使用RD作为命令和数组索引是非常不寻常和令人困惑的。

哦,顺便说一句,*dout1 = array[RS1] 是正确的表示法。这不是问题所在。

关于循环精确模型指针和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16594814/

相关文章:

c - 这个数组可以用C语言实现吗?还有其他办法吗?

c++ - 如何通过c中的指针传递二维数组

c - 结构名称 - 指针

html - 编写 HTML 解析器时借用的值不够长

c - 将文本文件中的数据保存到C中的数据结构

CodeVision AVR 发送和接收 USART 数据

c - 二叉树节点的 C 声明中的结构

ios - 快速提取和管理数组元素

java - 搜索数组中带有空格的元素

javascript - 从数组中的对象中查找最大整数并返回键值对