Таким образом мы хотим убедиться что мы обязательно запишем _беззнаковое_ целое размером 8 бит а не как повезет на нашей платформе.
Размером 8 бит - да, и лучше указать тип явно (хз есть ли оператор именно для (u)char), а вот писать можно как знаковое так и без, прочтется верно т.к. их внутренние представления одинаковы. К слову
C++ (Qt)
unsigned char r, g, b;
...
unsigned char aver = (r + g + b) / 3;
Корректен ли этот код?
Так если записали 1 char, а после него QString, то и считывать мы будем так же, 1 char, а после него уже QString. Правильно?
Если так, тогда опять непонято зачем нужен этот S
Да, никакой смысловой нагрузки 'S' не несет, просто для примера