Я хочу отправить структуру через сокет. Я не хочу использовать IDL для определения структуры, но делаю это более динамично. Я хочу добавить несколько вызовов функций или макросов в коде, например, SendInt32(someInteger)
. Структура должна содержать одно поле на вызов функции в коде. Несколько вызовов в одной и той же строке кода (например, цикл) должны обновлять одно и то же поле. Как построить эту структуру динамически?
Также необходимо вычислить сумму длины полей. Давайте пока проигнорируем, как удаленная конечная точка читает структуру на данный момент.
SendInt32(1); // (1)
SendInt16(2); // (2)
for (int i = 0; i < 10; i++)
{
SendInt32(i); // (3)
}
реализация функций Send
должна создать структуру, такую как:
struct {
uint16_t size = 10; // sizeof(first) + sizeof(second) + sizeof(third)
int32_t first = 1; // (1)
int16_t second = 2; // (2)
int32_t third = 9; // (3)
}
Возможно ли это в C?