# Multi-line comments cannot be nested

suggest change

In C, multi-line comments, /* and */, do not nest.

If you annotate a block of code or function using this style of comment:

```/*
* max(): Finds the largest integer in an array and returns it.
* If the array length is less than 1, the result is undefined.
* arr: The array of integers to search.
* num: The number of integers in arr.
*/
int max(int arr[], int num)
{
int max = arr;
for (int i = 0; i < num; i++)
if (arr[i] > max)
max = arr[i];
return max;
}```

You will not be able to comment it out easily:

```//Trying to comment out the block...
/*

/*
* max(): Finds the largest integer in an array and returns it.
* If the array length is less than 1, the result is undefined.
* arr: The array of integers to search.
* num: The number of integers in arr.
*/
int max(int arr[], int num)
{
int max = arr;
for (int i = 0; i < num; i++)
if (arr[i] > max)
max = arr[i];
return max;
}

//Causes an error on the line below...
*/```

One solution is to use C99 style comments:

```// max(): Finds the largest integer in an array and returns it.
// If the array length is less than 1, the result is undefined.
// arr: The array of integers to search.
// num: The number of integers in arr.
int max(int arr[], int num)
{
int max = arr;
for (int i = 0; i < num; i++)
if (arr[i] > max)
max = arr[i];
return max;
}```

Now the entire block can be commented out easily:

```/*

// max(): Finds the largest integer in an array and returns it.
// If the array length is less than 1, the result is undefined.
// arr: The array of integers to search.
// num: The number of integers in arr.
int max(int arr[], int num)
{
int max = arr;
for (int i = 0; i < num; i++)
if (arr[i] > max)
max = arr[i];
return max;
}

*/```

Another solution is to avoid disabling code using comment syntax, using `#ifdef` or `#ifndef` preprocessor directives instead. These directives do nest, leaving you free to comment your code in the style you prefer.

```#define DISABLE_MAX /* Remove or comment this line to enable max() code block */

#ifdef DISABLE_MAX
/*
* max(): Finds the largest integer in an array and returns it.
* If the array length is less than 1, the result is undefined.
* arr: The array of integers to search.
* num: The number of integers in arr.
*/
int max(int arr[], int num)
{
int max = arr;
for (int i = 0; i < num; i++)
if (arr[i] > max)
max = arr[i];
return max;
}
#endif```

Some guides go so far as to recommend that code sections must never be commented and that if code is to be temporarily disabled one could resort to using an `#if 0` directive.

See http://stackoverflow.com/documentation/c/447/preprocessor-and-macros/5407/if-0-to-block-out-code-sections#t=201608021158177726733.