Comments begin with the /* characters, end with the */ characters, and can span more than one line. You can put comments anywhere the language allows white space. Multibyte characters can be included in a comment.
Comments are replaced during preprocessing by a single space character.
If the -qcpluscmt compiler option is in
effect when you compile a C program, double slashes (//) also
specify the beginning of a comment. The comment ends at the next
newline character.
The -C compiler option
affects how comments appear in the compiler listing.
The -Pc compiler option affects how
comments appear in the compiler listing.
Note: The /* or */ characters found in a character constant or string literal do not start or end comments.
You cannot nest comments. Each comment ends at the first occurrence of */. For example, in the following code segment, the comments are highlighted:
1 /* A program with nested comments. */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 test_function(); 8 } 9 10 int test_function(void) 11 { 12 int number; 13 char letter; 14 /* 15 number = 55; 16 letter = 'A'; 17 /* number = 44; */ 18 */ 19 return 999; 20 }
In test_function, the compiler reads the /* in line 14 through the */ in line 17 as a comment, and line 18 as C language code, causing errors at line 18.
To avoid commenting over comments already in the source code, you can use conditional compilation preprocessor directives to cause the compiler to bypass sections of a C program. For example, one method to ignore lines 15 through 17 would be to change line 14 to:
14 #if 0
and line 18 to:
18 #endif
To later reenable the ignored comments, change line 14 to:
14 #if 1
Lexical Elements - Tokens
Lexical Elements -
Identifiers
Lexical Elements -
Constants
Preprocessor
Directives
Conditional
Compilation Directives
#if
Preprocessor Directive
#endif
Preprocessor Directive