4.3 Удаленный код
Если вы замените или удалите часть программы, но хотите сохранить старый код для будущей справки, то часто вы не можете просто закомментировать его. Блочные комментарии не вложены, поэтому первый комментарий внутри старого кода завершит комментирование. Вероятным результатом будет поток синтаксических ошибок.
Один из способов избежать этой проблемы — использовать всегда-ложное условие вместо этого. Например, поместите #if 0 перед удалённым кодом и #endif после него. Это работает даже если отключаемый код содержит условные операторы, но они должны быть полными условными операторами (сбалансированными ‘#if’ и ‘#endif’).
Некоторые люди используют #ifdef notdef вместо этого. Это рискованно, потому что notdef может быть случайно определён как макрос, а затем условие будет выполнено. #if 0 можно гарантировать, что оно будет выполняться неуспешно.
Не используйте #if 0 для комментариев, которые не являются кодом C. Используйте вместо этого реальный комментарий. Внутренность #if 0 должна состоять из полных токенов; в частности, символы одинарных кавычек должны быть сбалансированы. Комментарии часто содержат несбалансированные символы одинарных кавычек (известные на английском языке как апострофы). Это сбивает с толку #if 0. Они не сбивают с толку ‘/*’.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/cpp/Deleted-Code.html