我嘗試獲取結構數組中某個struct成員的地址,但我不想使用該成員的名稱。如何獲得結構數組中某個struct成員的地址
應該是這樣的:
typedef struct{
unsigned char MrChar;
unsigned short MrShort;
unsigned long MrLong;
unsigned char MrArray[5];
}tModule;
static tModule taModulesArray[MODULES_AMOUNT] = { // MODULES_AMOUNT = 2
{0x22, 0x3298, 0x92324583, "djsoe"}, // Module 1
{0x33, 0x1843, 0x65644113, "gskwc"}, // Module 2
};
unsigned long usGetMemberAddr(unsigned long ulModule, unsigned long ulMember){
unsigned long Address;
Address = abs(taModulesArray_BaseAddress - taModulesArray[ulModule].[ulMember]);
return Address;
}
我需要的配置(EEPROM)的快速修改是在不同的結構。所以我試着做一些帶有模塊成員的模塊和索引號的函數,並返回適當成員的偏移量。
如果在返回之前有類似該行的可能性?
你不想使用成員的名字,而是使用ulMember,我是否理解正確?我只看到2種方法:1)通過類似開關的統計信息將ulMember映射到相應的成員; 2)對偏移進行硬編碼。 – 2012-08-06 09:54:59
你是對的。我想要一些索引而不是名字。 – bienieck 2012-08-06 10:37:07