В этот ответ, int8_t*
используется для (байт) арифметики указателя:
std::size_t offset = offsetof(Thing, b);
Thing* thing = reinterpret_cast<Thing*>(reinterpret_cast<int8_t*>(ptr) - offset);
Я всегда использовал char*
в прошлом, но комментарии действительно сбивают с толку, и никто не ответил, поэтому я разместил этот отдельный вопрос.
Является ли char*
действительным и предпочтительным способом выполнения этих вычислений?