Определение констант внутри структуры - PullRequest
2 голосов
/ 14 июля 2010

Есть ли какое-то особое значение для определения постоянных данных внутри структуры, как показано. Это из сторонней библиотеки.

typedef struct              
{           
    IntVB abc_number;           
    #define ABC_A   0x01    
    #define ADBC_E  0x02     
    IntVB asset;            
} StructA;

Ответы [ 3 ]

6 голосов
/ 14 июля 2010

Не совсем. Они, вероятно, обеспечивают большую значимость для программиста в этом месте кода.

Это означает, что эти константы, вероятно, связаны с элементами в этом контейнере структуры или с поведением структуры.

2 голосов
/ 14 июля 2010

Согласен с @Luca Matteis. Они, вероятно, определены там, потому что они актуальны в тот момент кода. Компилятор специально к ним не относится. В частности, они могут быть определены непосредственно перед этой структурой и работать точно так же. Для них нет никакого значения, что они внутри.

Тем не менее, есть одна вещь, на которую следует обратить внимание, они действительны только после , они определены Таким образом, они не могут быть использованы ранее в файле. Это может быть значительным. Например, они могут быть определены по-разному до этого момента. (Это плохая идея, но это возможно.)

1 голос
/ 14 июля 2010

Нет, они могут быть вызваны без всякой области действия

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