如何在c ++中声明byte *(字节数组)?

时间:2013-04-18 09:48:22

标签: c++ bytearray

如何在c ++中声明byte *(byte array)以及如何在函数定义中定义为参数?

当我在下面声明时

功能声明:

int Analysis(byte* InputImage,int nHeight,int nWidth);

获取错误:“byte”undefined

2 个答案:

答案 0 :(得分:3)

C ++中没有类型byte。您应该先使用typedef。像

这样的东西
typedef std::uint8_t byte;

在C ++ 11中,或

typedef unsigned char byte;

在C ++ 03中。

答案 1 :(得分:2)

表示字节的C ++类型是unsigned char(或char的其他符号风格,但如果您希望它为普通字节,unsigned可能就是您所追求的。

但是,在现代C ++中,您不应该使用原始数组。如果数组是运行时大小,请使用std::vector<unsigned char>;如果数组是静态大小std::array<unsigned char, N>,请使用N(C ++ 11)。您可以通过(const)引用将这些函数传递给函数,如下所示:

int Analysis(std::vector<unsigned char> &InputImage, int nHeight, int nWidth);

如果Analysis没有修改数组或其元素,请改为:

int Analysis(const std::vector<unsigned char> &InputImage, int nHeight, int nWidth);