CPhalcon 源码语法问题

heiing 发布于 2015/01/30 10:43
阅读 468
收藏 0
PHP
 

我在看 Phalcon 的源码时,发现以下代码:

#define PHALCON_INIT_CLASS(name) \
	int phalcon_ ##name## _init(TSRMLS_D)

其中 phalcon_ ##name## _init 是什么意思,是什么语法。谁能告诉我,谢谢!



加载中
0
暗夜在火星
暗夜在火星

这个和phalcon框架无关的,可以看下这里:

C语言中两个井号"##"和一个井号"#"的使用方法[转]

http://blog.sina.com.cn/s/blog_6639996501017orh.html

## 是连接符号,由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。




heiing
heiing
原来如此,非常感谢
0
暗夜在火星
暗夜在火星


因为搜索了一下phalcon的源码,没有##name##的始化。

$ grep '##name##' * -R

build/safe/php_phalcon.h:    int phalcon_ ##name## _init(TSRMLS_D)
build/safe/php_phalcon.h:    if (phalcon_ ##name## _init(TSRMLS_C) == FAILURE) { \
build/safe/phalcon.c:        phalcon_ ##name## _ce = zend_register_internal_class(&ce TSRMLS_CC); \
build/safe/phalcon.c:        phalcon_ ##name## _ce->ce_flags |= flags;  \
build/safe/phalcon.c:        phalcon_ ##name## _ce = zend_register_internal_interface(&ce TSRMLS_CC); \
build/32bits/php_phalcon.h:    int phalcon_ ##name## _init(TSRMLS_D)
build/32bits/php_phalcon.h:    if (phalcon_ ##name## _init(TSRMLS_C) == FAILURE) { \
build/32bits/phalcon.c:        phalcon_ ##name## _ce = zend_register_internal_class(&ce TSRMLS_CC); \
build/32bits/phalcon.c:        phalcon_ ##name## _ce->ce_flags |= flags;  \
build/32bits/phalcon.c:        phalcon_ ##name## _ce = zend_register_internal_interface(&ce TSRMLS_CC); \
build/64bits/php_phalcon.h:    int phalcon_ ##name## _init(TSRMLS_D)
build/64bits/php_phalcon.h:    if (phalcon_ ##name## _init(TSRMLS_C) == FAILURE) { \
build/64bits/phalcon.c:        phalcon_ ##name## _ce = zend_register_internal_class(&ce TSRMLS_CC); \
build/64bits/phalcon.c:        phalcon_ ##name## _ce->ce_flags |= flags;  \
build/64bits/phalcon.c:        phalcon_ ##name## _ce = zend_register_internal_interface(&ce TSRMLS_CC); \
ext/php_phalcon.h:    int phalcon_ ##name## _init(TSRMLS_D)
ext/php_phalcon.h:    if (phalcon_ ##name## _init(TSRMLS_C) == FAILURE) { \
ext/kernel/main.h:        phalcon_ ##name## _ce = zend_register_internal_class(&ce TSRMLS_CC); \
ext/kernel/main.h:        phalcon_ ##name## _ce->ce_flags |= flags;  \
ext/kernel/main.h:        phalcon_ ##name## _ce = zend_register_internal_interface(&ce TSRMLS_CC); \

返回顶部
顶部