我正在练习K&R2。当我在此页面上阅读Ben Pfaff的代码时,http: //clc-wiki.net/wiki/K%26R2_solutions:Chapter_1:Exercise_23我不明白单个代码putchar('/'// * / 1 ) 意思。在我的编译器中,这是语法错误。所以任何人都可以向我解释。
如果您在解决方案的开头阅读了注释,它说明了您看到该错误的原因:
它还包含以星号结尾的注释和以斜杠开头的注释的示例。注意,后者将破坏带有//注释扩展名的C99编译器和C89编译器。
在不支持//
样式注释的编译器中,这是:
putchar('/' //**/
1)
等效于:
putchar('/'/1)
这是合法的-尽管很奇怪-的表达方式(请记住,C achar
是数字类型,所以'/'/1
与相同/
)。发生这种情况是因为序列/**/
是空的注释。
在具有//
样式注释的现代编译器中,表达式最终等于:
puchar('/' 1)
这简直是一个错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句