Хорошая информация об инструкциях препроцессора может быть найдена здесь и здесь . Я лично рекомендую вторую ссылку, так как она сильно отредактирована.
Ответ на ваш фрагмент кода:
enum level
{
m_00,
m_01,
m_02,
};
// Create: Global Instruction
#define Args(_instruction_,_level_,_output_)\
_instruction_==_level_?printf(_output_):0;
#define Foo 1 // Example
void main( )
{
Args( Foo, level::m_01, "Level has been verified..." )
};
Очевидно, вы можете изменить это в соответствии со своими потребностями, но идея остается той же.