Строго говоря, вы не можете сделать union
без объявления union
, так как union
- удобный синтаксис для совместного использования хранилища стандартным способом. Однако нет такой вещи, как «команда объединения».
Если вы хотите сохранить значения разных типов в пространстве разделяемой памяти, выберите тип максимального размера среди типов, которые вы хотите, чтобы ваш притворный союз был закрыт, и выполните задания с использованием указателей-указателей:
long long shared;
*((int*)&shared) = 5;
*((char*)&shared) = 'c';
*((float*)&shared) = 3.14f;
Это чисто академическое любопытство, или у вас есть настоящая проблема, которую вы пытаетесь решить? –
Почему ??? Если вам нужен союз, используйте союз. – abelenky
Я думаю, вам нужно прочитать о [проблема XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem), а затем уточнить свой вопрос. –