Skip to content

C++ Comments

Comments are explanatory notes within your C++ source code. They are ignored by the compiler but are crucial for human readers (including your future self!) to understand the code’s purpose, logic, or usage.

C++ supports two main styles of comments:

A single-line comment starts with // and extends to the end of the physical line. It’s often used for brief explanations of a single line of code or a small block.

#include <iostream> // Include the standard I/O library
int main() { // Program entry point
// Print a greeting message to the console
std::cout << "Hello, World!" << std::endl; // std::endl also flushes the output buffer
return 0; // Indicate successful execution
}

A multi-line comment starts with /* and ends with */. Everything between these delimiters, potentially spanning multiple lines, is treated as a comment.

/*
* This is a multi-line comment.
* It can span several lines and is often used for
* function descriptions, file headers, or temporarily
* disabling blocks of code.
*/
#include <iostream>
int main() {
/* std::cout << "This line is commented out." << std::endl; */
std::cout << "This line is active." << std::endl;
return 0;
}

You can generally nest // comments within /* ... */ blocks, and the /* and */ delimiters have no special meaning within a // comment.

/*
This block demonstrates nesting.
// This single-line comment is inside the multi-line comment.
int x = 5; // We can still use // here.
*/
// This line /* has no */ special /* meaning */ here.

However, you cannot directly nest /* ... */ comments within each other. The first */ encountered will close the comment block.

/* This is the outer comment.
/* This inner comment attempt */ will cause problems!
The first */ above closed the outer comment prematurely.
This text here would be treated as code by the compiler, likely causing an error.
*/
  • Comment why, not what: Good code often makes the what clear. Comments should explain the reasoning, the intent, or the non-obvious aspects.
  • Keep comments updated: Outdated comments are worse than no comments. If you change the code, update the corresponding comments.
  • Use comments for documentation: Explain the purpose, parameters, and return values of functions, and the role of classes.
  • Avoid excessive or obvious comments: Commenting i++; // Increment i adds clutter, not clarity.
  • Use TODO or FIXME tags: Mark areas needing future work or fixes (e.g., // TODO: Implement error handling). Many IDEs recognize these tags.

Comments are an essential part of writing maintainable and understandable C++ code.