Как объявить byte * (байтовый массив) в c ++ и как определить его как параметр в определении функции?
когда я заявляю, как показано ниже
Объявление функции:
int Analysis(byte* InputImage,int nHeight,int nWidth);
Получение ошибки: «байт» не определен
Нет типа byte
в C ++. Вы должны использовать typedef
до. Что-то вроде
typedef std::uint8_t byte;
в C ++ 11 или
typedef unsigned char byte;
в C ++ 03.
Тип 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);