ANSI C99标准中预定议了两个宏,__FILE__和__LINE__。这两个宏在断言中很有用
处。但是,这两个宏的类型却不相同:__FILE__展开为一个字符串,__LINE__ 展开为一个
整数。这也就意味着,你可以写出如下代码:
而以下代码却是非法的:
解决这个问题的第一个想法可能是使用“#”宏操作符:
但是这只能产生如下输出
ISO/IEC 9899:1999 中有这样一段话:
After all parameters in the replacement list have been substituted and # and ## processing has taken place, all placemarker preprocessing tokens are removed. Then, the resulting preprocessing token sequence is rescanned, along with all subsequent preprocessing to