2013-04-18 4 views
0

Как объявить байт * (массив байтов) в C++ и как определить в качестве параметра в определении функции?Как объявить байт * (массив байтов) в C++?

, когда я заявляю, как показано ниже

Функция декларации:

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

Получение ошибки: "байт" неопределенные

+0

использовать неподписанный символ вместо этого. его то же самое .... один байт –

+0

то как я должен преобразовать байт * в в unsigned char, получая байтовый массив ввода из приложения C#. – Pixel

+0

Вы хотите преобразовать байт из C# в char в C++? Я понимаю это правильно? –

ответ

3

Там нет типа byte в C++. Вы должны использовать typedef. Что-то вроде

typedef std::uint8_t byte; 

в C++ 11 или

typedef unsigned char byte; 

в C++ 03.

2

типа C++, представляющий байт unsigned char (или другой знак вкус char, но если вы хотите, как простые байты, unsigned, вероятно, что вы после этого).

Однако в современных C++ вы не должны использовать необработанные массивы. Используйте std::vector<unsigned char>, если ваш массив задан во время выполнения, или std::array<unsigned char, N> (C++ 11), если ваш массив имеет статический размер N. Вы можете передать их в функцию через (константную) ссылку, например:

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

Если Analysis не изменяют массив или его элементы, сделать это вместо:

int Analysis(const std::vector<unsigned char> &InputImage, int nHeight, int nWidth); 
Смежные вопросы