Jump to content

    
Sign in to follow this  
Димон Безпарольный

Как в структуру прописать ссылку на константу?

Recommended Posts

Есть структура:

const trx_settings_t trx_default_settings =
{      
    MODEM_ID, 
    KEY,
  ................

Вот этот MODEM_ID и KEY нужно прописать как ссылки на константу. С KEY все просто - это массив:

 

const uint32_t KEYmem[] = {0x845C8872...........
#define KEY  (uint32_t *)KEYmem

С MODEM_ID не получилось - это ссылка на uint32_t:

const uint32_t M_ID = 0x56C2AD;
uint32_t* M_IDptr = (uint32_t*)&M_ID;

#define MODEM_ID (uint32_t*)M_IDptr

Ругается 

Quote

error:  #28: expression must have a constant value

Пока вышел из положения так:

const uint32_t M_ID[1] = {0x84C2AD};
#define MODEM_ID (uint32_t*)M_ID

 

 

Edited by Димон Безпарольный

Share this post


Link to post
Share on other sites
4 минуты назад, Arlleex сказал:

const uint32_t M_ID = 0x84C2AD; #define MODEM_ID (uint32_t*)&M_ID

Возможно, потребуется явно сделать указатель константным:

#define MODEM_ID (uint32_t* const)&M_ID

Или константный указатель на константу, если первое поле структуры объявлено, как указатель на константу:

#define MODEM_ID (const uint32_t* const)&M_ID

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this