不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2019-10-13 00:06  分类:Linux_C  编辑

在开发PHP扩展时,定义函数如下:

PHP_FUNCTION(php_array_square_sum)
{
}

把PHP_FUNCTION宏替换完之后的样子如下:

替换前

PHP_FUNCTION(php_array_square_sum)

1次替换:

ZEND_FUNCTION(php_array_square_sum)

2次替换:

ZEND_NAMED_FUNCTION(ZEND_FN(php_array_square_sum))

3次替换:

ZEND_NAMED_FUNCTION(zif_php_array_square_sum)

4次替换:

void zif_php_array_square_sum(int ht, zval *return_value, zval **return_value_ptr, zval *this_ptr, int return_value_used TSRMLS_DC)

5次替换:

void zif_php_array_square_sum(int ht, zval *return_value, zval **return_value_ptr, zval *this_ptr, int return_value_used , TSRMLS_D)

6次替换:

void zif_php_array_square_sum(
    int ht,
    zval *return_value,
    zval **return_value_ptr,
    zval *this_ptr,
    int return_value_used,
    void ***tsrm_ls
)

替换完之后的样子就是上面的样子 zif_php_array_square_sum 为真正的函数名,在php中调用的时候 不需要带前缀 zif_