如何在c ++中声明byte *(byte array)以及如何在函数定义中定义为参数?
当我在下面声明时
功能声明:
int Analysis(byte* InputImage,int nHeight,int nWidth);
获取错误:“byte”undefined
答案 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);