【发布时间】:2018-11-19 19:45:03
【问题描述】:
我正在使用 C 语言开发 IJVM 项目。 首先,我将一个二进制文件导入到我的程序中,它应该被解析为单词。 现在我创建了一个包含二进制文件的变量(文本),我需要将其转换为单词数组。我得到了提示
int result = ((bytes[0] & 0xFF) << 24) |
((bytes[1] & 0xFF) <<16) |
((bytes[2] & 0xFF) << 8) | (bytes[3] & 0xFF);
这仅适用于前 4 个字节,我需要的是 result 的数组。
我尝试过这样的事情,但它从来没有成功.. :(
void type_converter(byte_t* text)
{
for (int i = 0; i < sizeof(text)/4; i++) {
for (int j = 0; i < sizeof(text)/4; i++) {
int result[i] = ((text[j+0] & 0xFF) << 24) |
((text[j+1] & 0xFF) << 16) |
((text[j+2] & 0xFF) << 8) | (text[j+3] & 0xFF);
instruction[i] = result;
j =+ 4;
}
}
【问题讨论】:
-
'sizeof(text)' is sizeof(a pointer)
-
您必须将数组大小作为单独的参数传递。
-
for (int j = 0; i < sizeof(text)/4; i++) {i或j?