Sdílet prostřednictvím


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

Viz také

Tokeny jazyka C