`
andrew__
  • 浏览: 9785 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

编写PHP扩展函数返回值宏定义

    博客分类:
  • PHP
阅读更多
#define ZVAL_FALSE(z)  ZVAL_BOOL(z, 0)
#define ZVAL_TRUE(z)  ZVAL_BOOL(z, 1)

#define RETVAL_RESOURCE(l) ZVAL_RESOURCE(return_value, l)
#define RETVAL_BOOL(b) ZVAL_BOOL(return_value, b)
#define RETVAL_NULL() ZVAL_NULL(return_value)
#define RETVAL_LONG(l) ZVAL_LONG(return_value, l)
#define RETVAL_DOUBLE(d) ZVAL_DOUBLE(return_value, d)
#define RETVAL_STRING(s, duplicate) ZVAL_STRING(return_value, s, duplicate)
#define RETVAL_STRINGL(s, l, duplicate) ZVAL_STRINGL(return_value, s, l, duplicate)
#define RETVAL_EMPTY_STRING() ZVAL_EMPTY_STRING(return_value)
#define RETVAL_ZVAL(zv, copy, dtor) ZVAL_ZVAL(return_value, zv, copy, dtor)
#define RETVAL_FALSE  ZVAL_BOOL(return_value, 0)
#define RETVAL_TRUE   ZVAL_BOOL(return_value, 1)

#define RETURN_RESOURCE(l) { RETVAL_RESOURCE(l); return; }
#define RETURN_BOOL(b) { RETVAL_BOOL(b); return; }
#define RETURN_NULL() { RETVAL_NULL(); return;}
#define RETURN_LONG(l) { RETVAL_LONG(l); return; }
#define RETURN_DOUBLE(d) { RETVAL_DOUBLE(d); return; }
#define RETURN_STRING(s, duplicate) { RETVAL_STRING(s, duplicate); return; }
#define RETURN_STRINGL(s, l, duplicate) { RETVAL_STRINGL(s, l, duplicate); return; }
#define RETURN_EMPTY_STRING() { RETVAL_EMPTY_STRING(); return; }
#define RETURN_ZVAL(zv, copy, dtor) { RETVAL_ZVAL(zv, copy, dtor); return; }
#define RETURN_FALSE  { RETVAL_FALSE; return; }
#define RETURN_TRUE   { RETVAL_TRUE; return; }
分享到:
评论

相关推荐

    C语言中宏定义技巧.doc

    通过上述宏定义技巧的掌握和应用,C语言程序员能够编写出更加健壮、高效且易于维护的代码。在实际开发过程中,合理运用宏定义不仅能够提升代码质量,还能有效避免常见的编程陷阱,从而大大提高软件开发的效率和成果...

    函数模板与宏定义

    在编程领域,函数模板和宏定义是两种常见的代码复用技术,它们都能帮助开发者提高代码的效率和可维护性。本文将深入探讨这两种方法的原理、优缺点以及使用场景。 函数模板是C++中的一项重要特性,它允许我们创建...

    宏定义和函数调用的区别

    在探讨宏定义与函数调用的区别时,我们深入解析它们在C语言编程中的特性、应用场景以及潜在风险,以便更全面...总之,理解宏定义与函数调用之间的区别,有助于程序员做出更明智的设计决策,编写出既高效又可靠的代码。

    浅谈内联函数与宏定义的区别详解

    文章(一)内联函数与宏定义 在C中,常用预处理语句#define来代替一个函数定义。例如: #define MAX(a,b) ((a)>(b)?(a):(b)) 该语句使得程序中每个出现MAX(a,b)函数调用的地方都被宏定义中后面的表达式((a)>(b)?...

    chap函数与宏定义PPT课件.pptx

    总的来说,理解和掌握C语言的函数和宏定义是编写高效、可维护代码的关键,这涉及到函数的定义、参数传递、返回值处理以及函数调用的各种情况。通过这些知识,开发者能够更好地组织代码结构,提高程序的可读性和复用...

    C语言宏定义和宏定义函数

    C语言宏定义和宏定义函数 C语言宏定义是C语言编程中非常重要的一部分,它可以帮助我们防止出错,提高代码的可移植性和可读性等。宏定义可以封装一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以...

    函数式宏定义与普通函数的区别

    总的来说,函数式宏定义在编写简短且性能敏感的代码时可能会提供优势,但其潜在的问题和陷阱需要谨慎对待。在能够保证安全和正确性的前提下,对于那些性能至关重要的简短函数,可以考虑使用函数式宏定义。然而,在...

    MTK常用函数及宏定义.zip_mtk 资料

    以上只是一部分可能涵盖的内容,实际的"MTK常用函数及宏定义"文档会更具体地阐述每个函数和宏的用法、参数、返回值以及注意事项。通过深入学习这份资料,开发者能够更高效地利用MTK平台进行软件开发,提高应用程序的...

    chap函数与宏定义学习教案.pptx

    chap函数与宏定义学习教案.pptx

    C++宏定义说明(详解)

    4. 在某些情况下,为了提高程序执行效率,可以将函数定义转换为宏定义,但要注意这可能会带来维护上的问题。 #### 三、宏定义的最佳实践 虽然宏定义提供了强大的功能,但在实际编程中也需要谨慎使用。以下是一些...

    Freertos之系统配置宏定义解析

    此宏定义启用或禁用IDLE任务钩子函数。在启用的情况下,用户需要实现一个名为vApplicationIdleHook()的函数,该函数在IDLE任务中周期性地执行,可用于操作系统的功能扩展。 6. #define configUSE_TICK_HOOK 0 此宏...

    扫描件_第6章函数和宏定义实验(1).pdf

    扫描件_第6章函数和宏定义实验(1).pdf

    MFC 宏定义详解 MFC 宏定义详解

    通过深入理解和熟练运用这些宏,开发者可以更高效、更稳定地编写MFC应用程序。阅读"MFC 宏定义详解.htm"和"MFC 宏定义详解.txt"这两份文档,将有助于你进一步掌握MFC中的宏使用技巧和最佳实践。

    常用宏定义#define

    在C/C++编程语言中,`#define` 是预处理器指令,用于创建宏定义,它在...因此,在使用宏定义时,需谨慎处理,尤其是在处理复杂表达式和函数宏时,应尽量考虑使用inline函数或者C++11引入的 constexpr 关键字来替代。

    威纶通触摸屏设计,宏定义,操作使用说明

    宏定义中常见的函数包括数据处理函数(如加减乘除)、逻辑判断函数(如IF-THEN-ELSE)、定时器函数、计数器函数等。这些函数帮助实现动态显示、报警处理、数据记录等功能。 3. **XY曲线绘制**: 在威纶通触摸屏上...

    C语言宏定义技巧

    C语言宏定义是一种预处理机制,它允许程序员创建符号常量和简单的代码替换规则,以增强代码的可读性、可维护性和通用性。宏定义主要有两种类型:不带参数的宏定义和...熟练掌握宏定义技巧是编写高质量C代码的重要一环。

    C语言宏定义用法大全

    宏定义可以定义常量,也可以定义带参数的宏,与函数有相似之处,但与函数相比,宏定义在预处理阶段进行文本替换,没有函数调用的开销。因此,在性能要求较高的场合,使用宏定义可以提升程序的执行效率。 以下是一些...

Global site tag (gtag.js) - Google Analytics