Если char
и uint8_t
являются совместимыми типами (они должны быть на большинстве современных настольных компьютеров), указатели на объекты этого типа имеют одинаковые требования к представлению и выравниванию, поэтому не должно возникнуть проблем при преобразовании (неявно или явно с приведением) один к другому.
Указанные значения, опять же, если они совместимы, должны обрабатываться одинаково, независимо от того, к какому типу они интерпретируются.
Примечание. Я не уверен на 100%, что uint8_t
и char
совместимы в реализации с подписанными символами.
Если типы несовместимы, вы вызываете Undefined Behavior, и может произойти все что угодно: очень вероятно, что все «работает», как вы ожидаете - но нет гарантии, что оно всегда будет работать одинаково