【发布时间】:2016-02-26 19:17:13
【问题描述】:
我创建了一个数组来表示虚拟内存,并且这个数组有一个 uint8_t*。我试图一次访问 64 位,并将其设置为等于一个值。它只占用第一个字节,我不知道如何让它占用整个 64 位。
control->value = memory[pc + 2];
我知道这会将控件的值设置为 pc+2 处的内存数组(我要读取的 64 位的开头)
我只是不知道如何让这段代码将 64 位输入控制-> 值 (a uint64_t)
【问题讨论】:
-
读取 8 个字节并使用 bitops 合并它们。 This answer 应该有帮助。
-
添加有关变量数据类型的详细信息有助于获得清晰的概念。
-
@AbhishekChoubey:它们隐藏在文本中。
-
通过将“value”的数据类型从uint8_t*更改为uint64_t*。
-
@AbhishekChoubey: ... 这会调用未定义的行为。
标签: c arrays pointers indexing casting