Вложенные комментарии в C++
Это должна быть общая проблема и, возможно, похожая на какой-то вопрос здесь, но я ищу лучший способ прокомментировать несколько строк (а не методы ) в C++, которые имеют комментарии в них .Я проверил некоторые сообщения на SO, но не смог получить полное подробнее об использовании чего-то вроде if #0 .
Я проверил этот пост вложенные комментарии в Visual C++? но я не на платформе Windows.
4 ответов
вы почти правы; по существу, предлагается "if-def" раздел кода. То, что вы хотите сделать, это использовать директиву precompiler #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.
использовать любые средства, ваши редакторе можно добавить //
a начало всех строк.
например, в Vim вы можете пометить строки как визуальный блок, а затем вставить в начале всех строк с I//
. В Visual Studio вы можете использовать CTRL-K-C
ярлык для комментирования блоков кода.
другой маршрут, предполагающий, что вы используете Visual Studio, есть удобная комбинация клавиш для комментария всего выбранного кода, добавив //
перед каждой строкой. CTRL+K
+CTRL+C
комментировать и CTRL+K
+CTRL+U
раскомментировать.
текст между #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"
, предполагая, что ваш компилятор не дает вам никаких ошибок для последнего */
.