Сначала Прата пол-главы жевал про представление строк массивами char, чтоб потом на половине страницы упомянуть std::string, теперь он рассказывает про unions, вместо std::variant
Ну раз интересен С
Пример реализации массива
enum Type {
Int = 0,
Float = 1,
Ptr = 2
};
struct Entry {
union {
int i;
float f;
void* p;
} values;
enum Type type;
};