如果我声明变量就好
int a/*comment*/ ; //This does not give any error . int a/*comment*/bc; This gives error
现在我没有得到这背后的原因,据我说,当符号/被读取后第一次读取字符a时,它会切换到DFA的其他状态以识别其他一些模式,因此没有错误在读取注释后的第二种情况下,它会找到一些不属于正式模式的其他序列,因此它会在有限自动机的某些非最终状态中停止,因为它会产生错误.
请清除这种困惑.
解决方法
根据C标准(5.1.1.2翻译阶段)
3. ...Each comment is replaced by one space character.
这样就行了
int a/*comment*/bc;
翻译阶段后相当于
int a bc;
但你可以写:)
int a\ bc;
但是,bc;从下一行的第一个位置开始.