uv

来自「source of perl for linux application,」· 代码 · 共 130 行

TXT
130
字号
####################################################################################  $Revision: 15 $##  $Author: mhx $##  $Date: 2007/08/12 15:53:17 +0200 $######################################################################################  Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.##  Version 2.x, Copyright (C) 2001, Paul Marquess.##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.####  This program is free software; you can redistribute it and/or##  modify it under the same terms as Perl itself.##################################################################################=provides__UNDEFINED__SvUOK=implementation__UNDEFINED__  sv_setuv(sv, uv)                     \               STMT_START {                         \                 UV TeMpUv = uv;                    \                 if (TeMpUv <= IV_MAX)              \                   sv_setiv(sv, TeMpUv);            \                 else                               \                   sv_setnv(sv, (double)TeMpUv);    \               } STMT_END__UNDEFINED__  newSVuv(uv)     ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv))__UNDEFINED__  sv_2uv(sv)      ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv)))__UNDEFINED__  SvUVX(sv)       ((UV)SvIVX(sv))__UNDEFINED__  SvUVXx(sv)      SvUVX(sv)__UNDEFINED__  SvUV(sv)        (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv))__UNDEFINED__  SvUVx(sv)       ((PL_Sv = (sv)), SvUV(PL_Sv))/* Hint: sv_uv * Always use the SvUVx() macro instead of sv_uv(). */__UNDEFINED__  sv_uv(sv)       SvUVx(sv)#if !defined(SvUOK) && defined(SvIOK_UV)#  define SvUOK(sv) SvIOK_UV(sv)#endif__UNDEFINED__  XST_mUV(i,v)    (ST(i) = sv_2mortal(newSVuv(v))  )__UNDEFINED__  XSRETURN_UV(v)  STMT_START { XST_mUV(0,v);  XSRETURN(1); } STMT_END__UNDEFINED__  PUSHu(u)        STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG;  } STMT_END__UNDEFINED__  XPUSHu(u)       STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END=xsubsSV *sv_setuv(uv)	UV uv	CODE:		RETVAL = newSViv(1);		sv_setuv(RETVAL, uv);	OUTPUT:		RETVALSV *newSVuv(uv)	UV uv	CODE:		RETVAL = newSVuv(uv);	OUTPUT:		RETVALUVsv_2uv(sv)	SV *sv	CODE:		RETVAL = sv_2uv(sv);	OUTPUT:		RETVALUVSvUVx(sv)	SV *sv	CODE:		sv--;		RETVAL = SvUVx(++sv);	OUTPUT:		RETVALvoidXSRETURN_UV()	PPCODE:		XSRETURN_UV(42);voidPUSHu()	PREINIT:		dTARG;	PPCODE:		TARG = sv_newmortal();		EXTEND(SP, 1);		PUSHu(42);		XSRETURN(1);voidXPUSHu()	PREINIT:		dTARG;	PPCODE:		TARG = sv_newmortal();		XPUSHu(43);		XSRETURN(1);=tests plan => 10ok(&Devel::PPPort::sv_setuv(42), 42);ok(&Devel::PPPort::newSVuv(123), 123);ok(&Devel::PPPort::sv_2uv("4711"), 4711);ok(&Devel::PPPort::sv_2uv("1735928559"), 1735928559);ok(&Devel::PPPort::SvUVx("1735928559"), 1735928559);ok(&Devel::PPPort::SvUVx(1735928559), 1735928559);ok(&Devel::PPPort::SvUVx(0xdeadbeef), 0xdeadbeef);ok(&Devel::PPPort::XSRETURN_UV(), 42);ok(&Devel::PPPort::PUSHu(), 42);ok(&Devel::PPPort::XPUSHu(), 43);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?