c语言宏的简单问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 08:14:48
#define ZEND_RAW_FENTRY(zend_name, name, arg_info, flags) { zend_name, name, arg_info, (zend_uint) (sizeof(arg_info)/sizeof(struct _zend_arg_info)-1), flags },
#define ZEND_RAW_NAMED_FE(zend_name, name, arg_info) ZEND_RAW_FENTRY(#zend_name, name, arg_info, 0)

这个是php源码里的代码,其中ZEND_RAW_FENTRY(#zend_name, name, arg_info, 0)
zend_name前的#号是什么意思?

没有什么特别的意思,zend_name是该带参数宏的第一个参数,只是按照这样的规则展开罢了,并没有什么特别的意思。

至于你认为的#,可能是PHP里面一个特别的语法罢了。
你还应当看一下,调用这个宏时,zend_name参数是什么类型的?这样才能全面的理解这里的替换方法。

#貌似是表示字符串还是其他,反正是规定参数类型的吧