2016-12-14 2 views
3

Как игнорировать многострочные символы комментариев внутри другой комментарий к нескольким строкам?C Программирование - Многострочные комментарии

Скажем, я хочу, чтобы поместить весь код в комментариях, так что я могу проверить другие вещи в моем коде

/* This is my first comment */ 
printf("\n This is my first print command"); 

/* This is my second comment */ 
printf("\n This is my second print command"); 

Если я

/* 

/* This is my first comment */ 
printf("\n This is my first print command"); 

/* This is my second comment */ 
printf("\n This is my second print command"); 

*/ 

это создает ошибку.

+2

Большинство современных IDE имеют инструменты, которые могут помочь вам сделать комментарий блока, все одним щелчком мыши. Как говорится ниже, вы, вероятно, не можете этого сделать. –

+0

Кроме того, это хорошая причина не использовать многострочные комментарии. –

ответ

7

Что вы ожидать вот многострочные комментарии вложенные.

Цитирование непосредственно из стандартного C11, главы §6.4.9,

исключением в символьной константы, строковые литералы, или комментарий, символы /* ввести комментарий. Содержимое такого комментария рассматривается только для идентификации многобайтовых символов и для нахождения символов */, которые его завершают. 83)

и сноска,

83) Таким образом, /* ... */ комментарии не гнездятся.

В качестве обходного пути, вы можете использовать условный блок компиляции, как

#if 0 
. 
. 
. 
. 
#endif 

иметь целый блок закомментирована.

+0

@iharob Правильно, вот почему я упомянул _commened в italics_. :) –

+1

Спасибо :) .. StackOverflow добавляет вещи в мое обучение. Счастливый об этом .. Я никогда не использовал #, если 0 ..... #endif. Так что спасибо вам большое :) –

2

Что вы можете сделать, это

#if 0 
/Code that needs to be commented/ 
#endif 
1

Я полагаю, вы хотите, чтобы закомментировать код, содержащий себя комментарии.

Вы можете использовать conditionnal сборник для этого:

#if 0 
/* This is my first comment */ 
printf("\n This is my first print command"); 

/* This is my second comment */ 
printf("\n This is my second print command"); 
#endif 

Все между #if 0 и #endif будут игнорироваться компилятором, только если он был комментарий.

Смежные вопросы