Вложенные комментарии в C ++ - PullRequest
7 голосов
/ 23 июля 2011

Это должно быть распространенной проблемой и, возможно, похоже на некоторый вопрос здесь, но я ищу лучший способ закомментировать несколько строк (скорее методов) в C ++, у которых есть комментарии внутри. Я проверял некоторые посты на SO, ноНе удалось получить полную информацию об использовании чего-либо, например, если # 0.

Я проверял этот пост Вложенные комментарии в Visual C ++? , но я не в Windowsплатформы.

Ответы [ 4 ]

12 голосов
/ 23 июля 2011

Вы почти правы;по сути, предлагается "if-def" раздел кода.То, что вы хотите сделать, это использовать директиву прекомпилятора #if, чтобы заблокировать код для вас.Пример ниже показывает, что я хочу игнорировать все между if и endif.

#if 0
/* Giant comment
 it doesn't matter what I put here */

// it will be ignored forever.
#endif

Чтобы ответить на ваш вопрос в целом, хотя;нет способа иметь составные комментарии, т.е.

/* 
  /* */ <--- this closes the first /* 
*/ <--- this dangles.
2 голосов
/ 23 июля 2011

Используйте любые средства, которые предоставляет ваш редактор, чтобы добавить // в начало всех строк.

Например, в Vim вы можете пометить строки как визуальный блок, а затем вставить в начало всех строк с помощьюI//.В Visual Studio вы можете использовать ярлык CTRL-K-C для комментирования блоков кода.

1 голос
/ 23 июля 2011

Другой маршрут, предполагающий, что вы используете Visual Studio, - это удобное сочетание клавиш для комментирования всего выбранного кода, добавляя // перед каждой строкой. CTRL+K + CTRL+C для комментирования и CTRL+K + CTRL+U для раскомментирования.

1 голос
/ 23 июля 2011

Вещи между #if 0 и #endif будут игнорироваться компилятором. (Ваш препроцессор может фактически удалить его, прежде чем «компилятор» сможет даже взглянуть на него!)

#if 0

    /* 42 is the answer. */

    Have you tried jQuery?

    @Compiler Stop ignoring me!!

#endif

Вы будете лучше контролировать, если будете использовать #ifdef s:

// #define DEBUG


#ifdef DEBUG
   MyFunction();
   std::cout << "DEBUG is defined!";
#endif


// Later in your code...

#ifdef DEBUG
    std::cout << "DEBUG is still defined!";
#endif

Просто раскомментируйте первую строку, и ваш код #ifdef DEBUG внезапно будет виден компилятору.


P.S. Это должно очистить еще больше путаницы:

/*
    cout << "a";
    /*
        cout << "b";
    */
    cout << "c";
*/

Выходные данные должны быть "c", при условии, что ваш компилятор не выдаст вам ошибок за последние */.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...