Remover comentários sem usar um pré-processador C real não é exatamente trivial. Uma vez eu cheguei a algo parecido com isso :
perl -0777 -pe'
s{
/\*.*?\*/
| //[^\n]*
| (
"(?:\.|.)*?"
| '\''(?:\.)?.*?'\''
| \?\?'\''
| .[^'\''"/]*
)
}{if ($1eq""){" "}else{$1}}exsg'
O que deve cobrir a maioria dos casos, como coisas como:
printf("%c%c%s", '"' /* d-quote */, '\'', "/*" "*/");
Veja a discussão interessante para mais detalhes.