Во многих файлах C и C++ я видел такие макросы:
#ifdef X
#undef X // no statements in between
#endif
Я чувствую, что достаточно просто написать:
#undef X
Если макрос X
не был определен, то #undef
не должен иметь никакого эффекта.
Можно ли можно поставить автономный #undef
, если я хочу только отменить определение макроса? Делает ли это в любом случае плохую практику кодирования?