簡體   English   中英

c編程unsigned int或uint8_t

[英]c program unsigned int or uint8_t

我正在編寫一個名為take_picture()的函數。 該功能將使相機拍照並將數據存儲在一個數組中。

我希望函數返回數組所在的地址並返回數組的大小。

所以這是我的函數聲明:

uint8_t * take_picture(int *piclength)

我的問題是函數返回類型和參數的正確/邏輯數據類型是什么? 考慮到它們存儲數組的地址和大小? uint8_tint有意義嗎?

謝謝

我的問題是函數返回類型和參數的正確/邏輯數據類型是什么? 考慮到它們存儲數組的地址和大小?

函數返回類型應該是指向數組項的指針。 如果是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM