구조체 배열의 일부 구조체 멤버의 주소를 가져 오려고하지만 해당 멤버의 이름을 사용하고 싶지 않습니다.구조체 배열에서 일부 구조체 멤버의 주소를 얻는 방법
그것은이 같은해야한다 :
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) switch statment와 같은 것을 통해 적절한 멤버에게 ul 회원을 매핑하고 2) 오프셋을 하드 코드한다. –
정확합니다. 나는 이름 대신에 어떤 종류의 색인을 원한다. – bienieck