Spec-Zone.ru › GCC 10 CPP

Предыдущий: Условный синтаксис, Выше: Условные операторы [Оглавление][Индекс]

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-10.5.0/cpp/Deleted-Code.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API