[英]c program unsigned int or uint8_t
我正在编写一个名为take_picture()
的函数。 该功能将使相机拍照并将数据存储在一个数组中。
我希望函数返回数组所在的地址并返回数组的大小。
所以这是我的函数声明:
uint8_t * take_picture(int *piclength)
我的问题是函数返回类型和参数的正确/逻辑数据类型是什么? 考虑到它们存储数组的地址和大小? uint8_t
和int
有意义吗?
谢谢
我的问题是函数返回类型和参数的正确/逻辑数据类型是什么? 考虑到它们存储数组的地址和大小?
函数返回类型应该是指向数组项的指针。 如果是uint8_t
的数组,则返回类型应为uint8_t*
。 这也是字节数组(“原始数据”)的最正确/安全类型。
用于描述数组大小的最正确的类型是size_t
,这是一种专门为此目的而存在的无符号整数类型,并且可以保证足够大以容纳给定系统的数组大小。
uint8_t* take_picture (size_t* piclength);
或者
void take_picture (uint8_t* picture, size_t* piclength);
unsigned int size; //因为图像大小总是正的并且很大。
uintptr_t地址; //如果这在stdint.h中可用
要么
unsigned int address; //它能够存储指针大小。
address = take_picture(&size); // take_picture if if返回uintptr_t
如果你不知道take_picture返回什么,那么你就像你所做的那样:
address =(unsigned * int)take_picture(&size);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.