Spec-Zone.ru › GCC 11 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-11.4.0/cpp/Deleted-Code.html

Spec-Zone.ru

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