У меня есть следующий код#define, #ifdef #undef #endif
#define PROC_ADD
void main(void)
{
while(1)
{
#ifdef PROC_ADD
// Do this code here then undefined it to run the code in the else
// processing work
#undef PROC_ADD
#else
// now that PROC_ADD has been undefined run this code
// processing work
#endif
}
}
Однако, он будет работать код. Но он не будет запускать код в else
после того, как PROC_ADD
не определен.
Я думаю, что причина может заключаться в том, что вы можете определять и деформировать только во время компиляции, а не во время выполнения. Однако я не уверен.
Обратите внимание, что предварительная обработка не выполняется во время выполнения, 'undef' не выполняется во время выполнения. Это происходит во время компиляции. – abyx