Udostępnij za pośrednictwem


Komentarze języka C

"Komentarz" to sekwencja znaków rozpoczynająca się od kombinacji ukośnika/gwiazdki (/*), która jest traktowana jako pojedynczy znak odstępu przez kompilator i w przeciwnym razie jest ignorowana. Komentarz może zawierać dowolną kombinację znaków z reprezentowanego zestawu znaków, w tym znaki nowego wiersza, ale z wyłączeniem ogranicznika "komentarz końcowy" (*/). Komentarze mogą zajmować więcej niż jeden wiersz, ale nie mogą być zagnieżdżone.

Komentarze mogą pojawić się wszędzie tam, gdzie dozwolone są odstępy. Ponieważ kompilator traktuje komentarz jako pojedynczy znak odstępu, nie można uwzględnić komentarzy w tokenach. Kompilator ignoruje znaki w komentarzu.

Komentarze służą do dokumentowania kodu. W tym przykładzie występuje komentarz akceptowany przez kompilator:

/* Comments can contain keywords such as
   for and while without generating errors. */

Komentarze mogą pojawić się w tym samym wierszu, co instrukcja kodu:

printf( "Hello\n" );  /* Comments can go here */

Można poprzedzać funkcje lub moduły programu opisowym blokiem komentarza:

/* MATHERR.C illustrates writing an error routine
* for math functions.
*/

Ponieważ komentarze nie mogą zawierać zagnieżdżonych komentarzy, ten przykład powoduje błąd:

/* Comment out this routine for testing

   /* Open file */
    fh = _open( "myfile.c", _O_RDONLY );
    .
    .
    .
*/

Ten błąd występuje, ponieważ kompilator rozpoznaje pierwsze */, po wyrazach Open file, jako koniec komentarza. Próbuje on przetworzyć pozostały tekst i generuje błąd, gdy napotka */ poza komentarzem.

Podczas gdy można używać komentarzy do oznaczenia pewnych linii kodu jako nieaktywnych dla celów testowych, dyrektywy preprocesora #if, #endif i kompilacja warunkowa są przydatną alternatywą dla wykonania tego zadania. Aby uzyskać więcej informacji, zobacz Dyrektywy preprocesora w dokumentacji preprocesora.

Specyficzne dla firmy Microsoft

Kompilator firmy Microsoft obsługuje również komentarze jednowierszowe poprzedzone dwoma ukośnikami (//). Komentarze te nie mogą być rozszerzane na drugi wiersz.

// This is a valid comment

Komentarze rozpoczynające się od dwóch ukośników (//) są przerywane przez następny znak nowego wiersza, który nie jest poprzedzony znakiem ucieczki. W następnym przykładzie znak nowego wiersza jest poprzedzony ukośnikiem odwrotnym (\), tworząc "sekwencję ucieczki". Ta sekwencja ucieczki powoduje, że kompilator traktuje następny wiersz jako część poprzedniego wiersza. (Aby uzyskać więcej informacji, zobacz Sekwencje ucieczki.

// my comment \
    i++;

W związku z tym instrukcja i++; jest opatrzona komentarzem.

Ustawieniem domyślnym dla firmy Microsoft C jest to, że rozszerzenia firmy Microsoft są włączone. Aby wyłączyć te rozszerzenia, użyj /Za.

END Microsoft Specific

Zobacz też

Tokeny języka C