我正在编写一个名为take_picture()的函数。该功能将使相机拍照并将数据存储在数组中。
我希望函数返回数组所在的地址并返回数组的大小。
这是我的函数声明:

uint8_t * take_picture(int *piclength)

我的问题是函数返回类型和参数的正确/逻辑数据类型是什么?考虑到它们存储了一个地址和一个数组的大小?auint8_tint有意义吗?
谢谢

最佳答案

我的问题是函数返回类型和参数的正确/逻辑数据类型是什么?考虑到它们存储了一个地址和一个数组的大小?
函数返回类型应该是指向数组项的指针。如果是uint8_t数组,则返回类型应为uint8_t*。对于字节数组(“原始数据”)来说,这也是最正确/最安全的类型。
用于描述数组大小的最正确的类型是size_t,它是专门用于此目的的无符号整数类型,并且可以保证足够大,以容纳给定系统的数组大小。

uint8_t* take_picture (size_t* piclength);

或者
void take_picture (uint8_t* picture, size_t* piclength);

10-06 12:36