Bir yapıda ve diğer ortak alanların içinde barındırılmış anonim birliğim var. Birliği yapı içinde belirli bir yere yerleştirmek için herhangi bir sebep var mı (örneğin, ilk veya son)?İç içe geçmiş birleşim C yapısında nereye yerleştirilir?
Örneğin, şudur: hiçbir şekilde
typedef struct _Message
{
union
{
SystemMessageArgs systemArgs;
OtherMessageArgs usbArgs;
};
MessageType type;
} Message;
: Bundan daha
typedef struct _Message
{
MessageType type;
union
{
SystemMessageArgs systemArgs;
OtherMessageArgs usbArgs;
};
} Message;
iyi
?bağlam edilir gömülü-C, özellikle TI MSP430
Bu ikisi arasında belirli bir fark yoktur. Bazı çok gelişmiş ve özel bellek düzeni nedenlerinden dolayı bir farklılık olabilir, ancak özel bir gereksiniminiz yoksa mükemmel bir şekilde eşdeğerdir. –
Sanmıyorum, sendika tiplerinin aynı uzunlukta olmasını umuyorum. Sendikanın son öğe olmasını tercih ediyorum – Miguel13366
Hangi yapıda daha az dolgu baytının olduğunu görmek için 'sizeof' kullanabilirsiniz. – mch