Komentáře v jazyce C
"komentář" je posloupnost znaků začínající lomítkem nebo hvězdičkou (/*), která je považována za jediný prázdný znak kompilátorem a jinak se ignoruje. Komentář může obsahovat libovolnou kombinaci znaků ze reprezentovatelné znakové sady, včetně znaků nového řádku, ale s výjimkou oddělovače "end comment" (*/). Komentáře můžou zabírat více než jeden řádek, ale nedají se vnořit.
Komentáře se mohou vyskytovat kdekoliv, kde je povolen prázdný znak. Vzhledem k tomu, že kompilátor považuje komentář za jediný prázdný znak, nemůžete do tokenů zahrnout komentáře. Kompilátor ignoruje znaky v komentáři.
Komentáře lze použít k dokumentaci kódu. Tento příklad je komentář, který kompilátor přijímá:
/* Comments can contain keywords such as
for and while without generating errors. */
Komentáře se mohou vyskytovat na stejném řádku, na kterém se vyskytuje příkaz kódu:
printf( "Hello\n" ); /* Comments can go here */
Funkcím nebo modulům programu mohou předcházet popisné bloky komentáře:
/* MATHERR.C illustrates writing an error routine
* for math functions.
*/
Vzhledem k tomu, že komentáře nemohou obsahovat vnořené komentáře, tento příklad způsobí chybu:
/* Comment out this routine for testing
/* Open file */
fh = _open( "myfile.c", _O_RDONLY );
.
.
.
*/
K této chybě dochází, protože kompilátor rozpozná první znak */
za slovy Open file
jako konec komentáře. Pokusí se zpracovat zbývající text a po nalezení znaku */
mimo komentář vygeneruje chybu.
Ačkoli lze komentáře použít k deaktivaci určitých řádků kódu za účelem testování, jsou užitečnou alternativou pro tento úkol direktivy preprocesoru #if
a #endif
a podmíněné kompilace. Další informace naleznete v tématu Direktivy preprocesoru v referenčních informacích preprocesoru.
Specifické pro Microsoft
Kompilátor Microsoftu také podporuje jednořádkové komentáře před dvěma lomítky (//
). Tyto komentáře se nedají rozšířit na druhý řádek.
// This is a valid comment
Komentáře začínající dvěma lomítky (//
) jsou ukončeny dalším znakem nového řádku, který není před řídicím znakem. V dalším příkladu předchází znak nového řádku zpětné lomítko (\
), čímž se vytvoří řídicí sekvence. Tato řídicí sekvence způsobí, že kompilátor považuje další řádek za součást předchozího řádku. (Další informace najdete v tématu Řídicí sekvence.)
// my comment \
i++;
Příkaz i++;
je proto zakomentován.
Výchozí hodnota pro Microsoft C je, že jsou povolená rozšíření Microsoftu. Chcete-li tato rozšíření zakázat, použijte možnost /Za.
END Microsoft Specific