Я хочу переопределить значение макро константы для определенного условия в моем C исходном коде. Я не могу использовать директивы условной предварительной обработки для определения LEN_OSG
, потому что во время выполнения решается, переопределено ли оно другим значением или нет.
То, что у меня уже есть:
if(condition) // proof condition for replacing the value in LEN_OSG.
{
if(LEN_OSG != CBS_LEN) // check if LEN_OS already has the value in CBS_LEN.
{
#undef LEN_OSG // undefine macro LEN_OSG by using `#undef` directive.
#define LEN_OSG CBS_LEN // recreate the macro LEN_OSG with new value.
}
}
Позволяет ли синтаксис C сокращать это другим способом вместо использования директивы #undef
, а затем воссоздавать макрос с новым значение другой директивой #define
(всего одной строкой)?
Желаемое решение будет выглядеть примерно так:
if(LEN_OSG != CBS_LEN) // check if LEN_OS already has the value in CBS_LEN.
{
#redefine LEN_OSG CBS_LEN // redefine LEN_OS with another value in one line.
}