Question: Usually, if a `*/`*(block comment closing)* is present in the code without a `/*`*(block comment opening)*, the compiler produces an error.

However, why does the compiler ***NOT*** produce an error in the following case?

```c
#include <stdio.h>
int main(void)
{
    #ifdef abcd
    printf("what ever it is");
    #endif */   --> the problem with this stray '*/' after #endif
    return 0;
}

```

Answer: 
Educated guess: this is strictly a bug in the preprocessor, and what it does is ignore everything after an `#endif`, which can't be followed by anything anyways.
If i'm getting the question you had:

```
/*
#ifdef abcd
printf("what ever it is");
#endif */

```

You removed the "/\*" from the beginning and the code doesn't compile ?

This is good because the code should not compile. you have a comment closer without the beginning.

what you could do is replace the "*/" with "//*/":

```
/*
#ifdef abcd
printf("what ever it is");
#endif //*/

```

That's way you can remove the "/\*" from the beginning without a problem.