如何在 C++ 中声明 byte*(字节数组)以及如何在函数定义中定义为参数?
当我像下面这样声明时
函数声明:
int Analysis(byte* InputImage,int nHeight,int nWidth);
收到错误:“字节”未定义
表示一个字节的 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);
C++中没有类型byte
。你应该以前用过typedef
。就像是
typedef std::uint8_t byte;
在 C++11 中,或
typedef unsigned char byte;
在 C++03 中。