Is your code bugged in the following case?

    printf(" /*This is not a comment but removing me changes program behaviour*/");

This one more weird

    if( match("/*")){
        doMagicStuff();
    }
    else
        match("*/");

You can incurr the risk of it becoming reduced to

     if( match(""));  //compilation error

You have to write a complete parser (a simple one, but too complex for becoming a single answer) to avoid these issues.

You can know if you have done everything correctly luckily:

 - Compile the kernel ==> binaries A
 - Strip comments
 - Compile the kernel ==> binaries B
 - If binaries A and B are not the same, then your comment remover has some bug.