【发布时间】:2020-05-11 22:37:00
【问题描述】:
我有一个指向字节数组 (u8) 的指针。我现在有一个函数,它接受一个 int 类型的指针(unsigned int)。在不创建新数组和转换每个元素的情况下完成此任务的优雅方法是什么?
我需要将每个字节转换为单个 int。 (即 {0x12, 0x34, 0x56} --> {0x00000012, 0x00000034, 0x00000056})
void external_function(unsigned int *val, int length)
{
//Write values to ...
}
void my_function(u8 *array)
{
int length = 10;
//Need to convert *array to (unsigned int *)
external_function(array, length);
}
【问题讨论】:
-
如果你这样做
array[0] = input[0]等等,C 会为你做这件事。 -
如果
external_function不需要一次调用中的所有数据,您可以在没有int数组的情况下执行此操作,方法是定义一个int并从字节数组中迭代地为其分配一个值并将int的地址传递给external_function,长度为一int。