Доступ к структуре без имени структуры - PullRequest
0 голосов
/ 05 июля 2019

В этом коде ниже я хочу указать указатель на объединение и использовать этот указатель для доступа к члену (скажем) eid (поле 8 битов), которое определено внутри strucutre txcmsgeid.Как я могу это сделать?

typedef union uCANTxMessageBuffer 
{
    struct
    {
        txcmsgsid CMSGSID;
        txcmsgeid CMSGEID;

    };
    int messageWord[4];

}CANTxMessageBuffer;

1 Ответ

5 голосов
/ 05 июля 2019

Вам просто нужно использовать имя участника.

пример

void foo()
{
    CANTxMessageBuffer c;
    CANTxMessageBuffer *pc = &c;

    txcmsgsid *ptx;

    c.CMSGSID = value;
    pc -> CMSGSID = value;

    ptx = &c.CMSGSID;
    ptx = &pc -> CMSGSID;
}

Полный пример: https://godbolt.org/z/6tmO2Q

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...