当前位置:  开发笔记 > 编程语言 > 正文

阅读Zend Engine API代码:##(双哈希)是什么意思?

如何解决《阅读ZendEngineAPI代码:##(双哈希)是什么意思?》经验,为你挑选了2个好方法。

出于好奇,我正在阅读Zend Engine API代码并在#define中遇到了相当多的##.例如,在/usr/lib/php5/Zend/zend_API.h:

#define ZEND_FN(name) zif_##name
#define ZEND_MN(name) zim_##name

##(双哈希)符号在这两行中意味着什么?



1> Ronny Vinden..:

##连接##之前的内容和之后的内容.所以在你的例子中,做到ZEND_FN(foo)会导致zif_foo



2> dcw..:

Echo RvV的回答.

请注意,在连接文字字符串时,您可能会发现预处理器/编译器之间存在一些不一致.有些人需要##

#define STR_CAT(s1, s2)   s1 ## s2

如在

const char s[] = STR_CAT("concat", "enation")

而其他人会对它抱怨,而只是要求编译器加入两个文字(而不是预处理器),因此需要

#define STR_CAT(s1, s2)   s1 s2

HTH

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有