In general, comments within identifiers are not legal. However, the pre-processor normally strips comments so that ma/*foo*/in becomes main. If you ask the preprocessor not to strip comments, the compiler will indeed balk at ma/*foo*/in -- it will treat it as two separate identifiers.