如何在C语言中读取此功能?

时间:2019-02-22 06:59:45

标签: c php-internals

在阅读有关PHP Zend Engine内部的内容时,我遇到了函数     zend_parse_parameters(),其用途如下

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &number) != SUCCESS) { return; }

我对第一个参数感到困惑,因为它由两个用空格分隔的单独实体组成:ZEND_NUM_ARGS()TSRMLS_CC。我从未在C中看到过这样的事情。有人可以解释如何在C语法规则中理解这一点吗? zend_parse_parameters()的原型如下:

int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...)

1 个答案:

答案 0 :(得分:0)

从C的角度来看,ZEND_NUM_ARGSTSRMLS_CCTSRMLS_DC只是宏。它们特定于Zend内部。本文介绍了它们的用法以及将扩展的内容: http://blog.golemon.com/2006/06/what-heck-is-tsrmlscc-anyway.html