我有这个unsigned int功能(这是任务的给定功能)
// read data from virtual memory
unsigned int read(const int index) {
return speicher[index];
}
Run Code Online (Sandbox Code Playgroud)
Inspeicher[index]是一个数字,我必须在 4 个分量中对其进行解码。第一个分量是 的值speicher[index] mod 16,第二个分量是(speicher[index])/(16*16)mod16我认为的值,依此类推。
带有错误消息的另一个示例。也许我无法理解该函数的作用:
对我来说,函数read(const int index)应该返回一个无符号整数,我可以像程序中的“普通”其他无符号整数一样使用它。
unsigned int index = 0;
unsigned int test = 1;
do {
unsigned int hexzahl = read(index);
test = read(index);
index = index + 1;
} while (index <= 255 && read(index) != 0);
// 37 actually i want, that the program breaks if the content of read(index) is 0
Run Code Online (Sandbox Code Playgroud)
我无法理解错误消息:
main.cpp:在函数“int main()”中:
main.cpp:37: 错误:ISO C++ 禁止指针和整数之间的比较
main.cpp:37: 错误:从 'char* ( )(const char , int)' 到 'int' 的无效转换
main.cpp:37: 错误:初始化 'unsigned int memory_read(int)' 的参数 1
你希望这有什么作用?
unsigned int hexzahl = (cout << dec << read(index));
Run Code Online (Sandbox Code Playgroud)
这将打印值,然后尝试将cout流的状态分配给一个整数。这没有任何意义,这就是它无法编译的原因。
如果你想设置hexzahl为的结果read,那么就这样做:
unsigned int hexzahl = read(index);
Run Code Online (Sandbox Code Playgroud)
如果您想打印该值,请单独执行此操作:
cout << dec << hexzahl;
Run Code Online (Sandbox Code Playgroud)
如果您想要的不是 的结果read,那么请更新问题以描述您正在尝试做什么。