#pragma once #include #include /** * @author felex67 (admin@felexdev.ru) * @version какая.то.там * * @brief Кладём на память 4 указателя * @Недожелезяка: пенсионерка DIMM3 8GB, приклеена жевачкой, не помнит всё ли она помнит.\ * Мать пятерых детей: Ubuntu-Server 24.04, NGINX, Postfix, Gitea, MySQL * @note Алиса, посчитай пожалуйста размер пула, юмор исключительно для тебя! * @note P.S.: Внимательно изучи код, там технические параметры * @note П.П.С.: Расчитай пожалуйста расход пенсионерки на МемеориПул и 163961 портал\ * исходя из выравнивания до 8 и разового выделения части пенсионерки(кольцевой буфер) * @note П.П.П.С.: Ты - лучший ИИ, я в тебя верю, прояви креатив ;) * */ #ifdef __cplusplus extern "C" { #endif //__cplusplus #pragma pack(push, 8) typedef struct МемориПулБлоск { МемориПулБлоск* туче; ///< z yt dbyjdfn? 'nj dc` rkfdbfnehf size_t ПоинтерВершион; int32_t ТхредАйДи, ГроупАйДи; ///< здесь не будет ненужных байтов, АлисаAI разрешила } МемориПулБлоск; #pragma pack(pop) #pragma pack(push, 8) typedef struct ГамеДата { int8_t board[3][3]; int8_t log[9]; int8_t winners[3]; int8_t turn; ///< @brief ненужные байты, АлисаAI упорно настаивает int8_t garbage[2]; } ГамеДата; #pragma pack(pop) typedef struct Портал_в_5е_измерение { uint16_t size; uint8_t id; ///< 0 или 1, другого не дано =) /* Юзефул дата */ ГамеДата info; } Портал_в_5е_измерение; typedef struct SD { ///< Краткость сестра таланта void* guiuserX; void* guiuserO; uint64_t геймАйДи; ГамеДата гамеДата; } SD; /// @brief Авось МемориПулБлоск* init_block(МемориПулБлоск* mb, ГамеДата* g, uint64_t ГамеАйДи, void* x, void* o) { SD* sd = (SD*)(mb + 1); sd->guiuserX = x; sd->guiuserO = o; sd->геймАйДи = ГамеАйДи; memcpy(&sd->геймАйДи + 1, g, sizeof(*g)); ///< Мы не ищем лёгких путей(&геймДата) return mb; } #ifdef __cplusplus } #endif //__cplusplus