Я хочу использовать функцию, которая ожидает такие данные:
void process(char *data_in, int data_len);
Поэтому он просто обрабатывает некоторые байты.
Но мне удобнее работать с "unsigned char", когда дело доходит до необработанных байтов (он как-то "чувствует" больше права иметь дело только с положительными 0 до 255 значений), поэтому мой вопрос:
Можно ли безопасно передать unsigned char *
в эту функцию?
Другими словами:
- Гарантируется ли я безопасно конвертировать (отличать) между char и unsigned char по желанию без потери информации?
- Можно ли безопасно конвертировать (отличать) между указателями на char и без знака char по желанию без потери информации?
Бонус: есть ли ответ на C и С++?