0

如何在 C++ 中声明 byte*(字节数组)以及如何在函数定义中定义为参数?

当我像下面这样声明时

函数声明:

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

收到错误:“字节”未定义

4

2 回答 2

4

表示一个字节的 C++ 类型是unsigned char(或其他符号风格char,但如果你想要它作为纯字节,unsigned可能就是你所追求的)。

但是,在现代 C++ 中,您不应该使用原始数组。std::vector<unsigned char>如果您的数组是运行时大小,则使用,或者如果std::array<unsigned char, N>您的数组是静态大小,则使用 (C++11) N。您可以通过 (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);
于 2013-04-18T09:49:58.977 回答
3

C++中没有类型byte。你应该以前用过typedef。就像是

typedef std::uint8_t byte;

在 C++11 中,或

typedef unsigned char byte;

在 C++03 中。

于 2013-04-18T09:49:39.280 回答