Стандарт C довольно странный, когда речь заходит об определении байта.У вас есть пара гарантий, хотя.
- Байт всегда будет иметь один символ размером
- sizeof (char) всегда возвращает 1
- Байт будет по крайней мере 8биты размером
Это определение плохо сочетается со старыми платформами, где длина байта составляла 6 или 7 бит, но это означает, что BYTE*,
и char *
гарантированно эквивалентны.
В конце строки Unicode необходимы несколько нулей, поскольку существуют допустимые символы Unicode, начинающиеся с нулевого (нулевого) байта.
Что касается упрощения чтения кода, то это полностьювопрос стиля.Этот код, кажется, написан в стиле, используемом большим количеством старого кода на C Windows, который определенно потерял популярность.Вероятно, есть множество способов сделать это более ясным для вас, но как сделать это более ясным, ясного ответа нет.