宏是 C 中一种 非常强大、使用也特别特别多的功能,PHP源码中就大量使用宏来实现内联式函数的效果,对一些复杂逻辑代码进行简单封装,提高可读性和可移植性。而
双井号(##连接符)
和单井号(#字符串预处理符)
也是宏中定义常用的手法,对于理解PHP源码有很大帮助。
『敲黑板』
,知识点了!
双井号(##连接符)
在 C 的宏中,##
被称为连接符,也是一种预处理运算符,用来将两个语言符号组成单个语言符号,这个语言符号不一定指宏的变量,不过常用的还是将变量进行连接;并且双井号不能作为第一个或者最后一个元素存在。
在 PHP源码 中,更多是以这种连接的方式作为基础构建宏,将它当作一个代码生成器,这样以来就可以一定程度上减少代码密度,额,也可以理解为一种代码重用的手段,间接减少因为代码复杂度导致的失误。
单井号(#字符串预处理符)
#
是一种预处理运算符,它的功能是将其后面的宏参数进行 字符串化操作
,简单说就是将宏变量通过替换后在其左右加上双引号,也就是转换成 字符串;需要特别注意下方第3点的输出,这里会直接将参数转换成 字符串,而不是 先执行嵌套的宏。
|
|
|
|
|
|
本文作者: wettper
本文链接: http://www.web-lovers.com/c-joiner.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!