我一直在处理的代码要求我打印一个uint32_t
十六进制类型的变量,填充为 0,最小长度为 8。到目前为止,我一直用来执行此操作的代码是:
printf("%08lx\n",read_word(address));
其中 read_word 返回类型 uint32_t。我用过jx、llx等格式都无济于事,有没有正确的格式可以用?
编辑:
我发现问题在于我正在传递的内容。函数 read_word 从 uint32_t 向量返回一个值。似乎这是导致使用十六进制出现问题的问题。这是通过引用/值传递问题吗?解决方法是什么?
read_word 函数:
uint32_t memory::read_word (uint32_t address) {
if(address>(maxWord)){
return 0;
}
return mem[address];
}
内存减速:
std::vector<uint32_t> mem=decltype(mem)(1024,0);