Komentarze języka C
"Komentarz" to sekwencja znaków rozpoczynająca się od kombinacji ukośnik/gwiazdka (/*), która jest traktowana przez kompilator jako pojedynczy biały znak i jest ignorowana.Komentarz może zawierać dowolną kombinację znaków z zestawu znaków reprezentowanych, włącznie ze znakami nowego wiersza, ale z wyłączeniem ogranicznika "końca komentarza" (*/).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ą białe znaki.Ponieważ kompilator traktuje komentarz jako pojedynczy znak biały, nie można dołączać komentarzy w obrębie tokenów.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 z użyciem opisowego bloku komentarza:
/* MATHERR.C illustrates writing an error routine
* for math functions.
*/
Ponieważ komentarze nie mogą zawierać zagnieżdżonych komentarzy, ten przykład wygeneruje 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, kiedy napotka */ poza komentarzem.
Podczas gdy można używać komentarzy do oznaczenia pewnych linii kodu jako nieaktywne dla celów testowych, dyrektywy preprocesora #if, #endif i kompilacja warunkowa są przydatną alternatywą do wykonania tego zadania.Aby uzyskać więcej informacji, zobacz Dyrektywy preprocesora w Odwołanie preprocesora.
Specyficzne dla firmy Microsoft
Kompilator Microsoft obsługuje również komentarze jednowierszowe poprzedzone dwoma ukośnikami (//).W przypadku kompilacji z użyciem /Za (standard ANSI), te komentarze spowodują wygenerowanie błędów.Nie można rozszerzać tych komentarzy do drugiego wiersza.
// This is a valid comment
Komentarze rozpoczynające się od dwóch ukośników (//) są zakończone 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 ujęta w komentarz.
Domyślne ustawienie dla Microsoft C: włączone są rozszerzenia Microsoft.Aby wyłączyć te rozszerzenia, użyj /Za.
KONIEC informacji specyficznych dla firmy Microsoft