Написание таких макросов никогда не было хорошей идеей.Вероятно, невозможно написать что-то лучше и более читабельное, чем mystruct.member1 = mystruct.member2;
.
. Если вы хотите инкапсулировать это по какой-либо причине, используйте функцию:
void structTypeMemberCopy (structType_t* obj)
{
obj->member1 = obj->member2;
}
Это может произойтидля вставки и замены в машинном коде эквивалентом mystruct.member1 = mystruct.member2;
.
И, наконец, есть макрос bad idea , который можно сделать безопасным для типа:
#define structTypeCopy(obj) _Generic((obj), structType_t: (obj).member1 = (obj).member2)
...
structType_t mystruct = { ... };
structTypeCopy(mystruct);