⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 typemap

📁 MSYS在windows下模拟了一个类unix的终端
💻
字号:
# basic C typesint			T_IVunsigned		T_UVunsigned int		T_UVlong			T_IVunsigned long		T_UVshort			T_IVunsigned short		T_UVchar			T_CHARunsigned char		T_U_CHARchar *			T_PVunsigned char *		T_PVcaddr_t			T_PVwchar_t *		T_PVwchar_t			T_IVbool_t			T_IVsize_t			T_IVssize_t			T_IVtime_t			T_NVunsigned long *		T_OPAQUEPTRchar **			T_PACKEDvoid *			T_PTRTime_t *		T_PVSV *			T_SVSVREF			T_SVREFAV *			T_AVREFHV *			T_HVREFCV *			T_CVREFIV			T_IVUV			T_UVNV			T_NVI32			T_IVI16			T_IVI8			T_IVU32			T_U_LONGU16			T_U_SHORTU8			T_UVResult			T_U_CHARBoolean			T_IVdouble			T_DOUBLESysRet			T_SYSRETSysRetLong		T_SYSRETFILE *			T_INFileHandle		T_PTROBJInputStream		T_INInOutStream		T_INOUTOutputStream		T_OUTbool			T_BOOL#############################################################################INPUTT_SV	$var = $argT_SVREF	if (sv_isa($arg, \"${ntype}\"))	    $var = (SV*)SvRV($arg);	else	    croak(\"$var is not of type ${ntype}\")T_AVREF	if (sv_isa($arg, \"${ntype}\"))	    $var = (AV*)SvRV($arg);	else	    croak(\"$var is not of type ${ntype}\")T_HVREF	if (sv_isa($arg, \"${ntype}\"))	    $var = (HV*)SvRV($arg);	else	    croak(\"$var is not of type ${ntype}\")T_CVREF	if (sv_isa($arg, \"${ntype}\"))	    $var = (CV*)SvRV($arg);	else	    croak(\"$var is not of type ${ntype}\")T_SYSRET	$var NOT IMPLEMENTEDT_UV	$var = ($type)SvUV($arg)T_IV	$var = ($type)SvIV($arg)T_INT	$var = (int)SvIV($arg)T_ENUM	$var = ($type)SvIV($arg)T_BOOL	$var = (int)SvIV($arg)T_U_INT	$var = (unsigned int)SvUV($arg)T_SHORT	$var = (short)SvIV($arg)T_U_SHORT	$var = (unsigned short)SvUV($arg)T_LONG	$var = (long)SvIV($arg)T_U_LONG	$var = (unsigned long)SvUV($arg)T_CHAR	$var = (char)*SvPV($arg,PL_na)T_U_CHAR	$var = (unsigned char)SvUV($arg)T_FLOAT	$var = (float)SvNV($arg)T_NV	$var = ($type)SvNV($arg)T_DOUBLE	$var = (double)SvNV($arg)T_PV	$var = ($type)SvPV($arg,PL_na)T_PTR	$var = INT2PTR($type,SvIV($arg))T_PTRREF	if (SvROK($arg)) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = INT2PTR($type,tmp);	}	else	    croak(\"$var is not a reference\")T_REF_IV_REF	if (sv_isa($arg, \"${type}\")) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = *($type *) tmp;	}	else	    croak(\"$var is not of type ${ntype}\")T_REF_IV_PTR	if (sv_isa($arg, \"${type}\")) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = ($type) tmp;	}	else	    croak(\"$var is not of type ${ntype}\")T_PTROBJ	if (sv_derived_from($arg, \"${ntype}\")) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = INT2PTR($type,tmp);	}	else	    croak(\"$var is not of type ${ntype}\")T_PTRDESC	if (sv_isa($arg, \"${ntype}\")) {	    IV tmp = SvIV((SV*)SvRV($arg));	    ${type}_desc = (\U${type}_DESC\E*) tmp; 	    $var = ${type}_desc->ptr;	}	else	    croak(\"$var is not of type ${ntype}\")T_REFREF	if (SvROK($arg)) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = *INT2PTR($type,tmp);	}	else	    croak(\"$var is not a reference\")T_REFOBJ	if (sv_isa($arg, \"${ntype}\")) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = *INT2PTR($type,tmp);	}	else	    croak(\"$var is not of type ${ntype}\")T_OPAQUE	$var NOT IMPLEMENTEDT_OPAQUEPTR	$var = ($type)SvPV($arg,PL_na)T_PACKED	$var = XS_unpack_$ntype($arg)T_PACKEDARRAY	$var = XS_unpack_$ntype($arg)T_CALLBACK	$var = make_perl_cb_$type($arg)T_ARRAY	$var = $ntype(items -= $argoff);	U32 ix_$var = $argoff;	while (items--) {	    DO_ARRAY_ELEM;	}T_IN	$var = IoIFP(sv_2io($arg))T_INOUT	$var = IoIFP(sv_2io($arg))T_OUT	$var = IoOFP(sv_2io($arg))#############################################################################OUTPUTT_SV	$arg = $var;T_SVREF	$arg = newRV((SV*)$var);T_AVREF	$arg = newRV((SV*)$var);T_HVREF	$arg = newRV((SV*)$var);T_CVREF	$arg = newRV((SV*)$var);T_IV	sv_setiv($arg, (IV)$var);T_UV	sv_setuv($arg, (UV)$var);T_INT	sv_setiv($arg, (IV)$var);T_SYSRET	if ($var != -1) {	    if ($var == 0)		sv_setpvn($arg, "0 but true", 10);	    else		sv_setiv($arg, (IV)$var);	}T_ENUM	sv_setiv($arg, (IV)$var);T_BOOL	$arg = boolSV($var);T_U_INT	sv_setuv($arg, (UV)$var);T_SHORT	sv_setiv($arg, (IV)$var);T_U_SHORT	sv_setuv($arg, (UV)$var);T_LONG	sv_setiv($arg, (IV)$var);T_U_LONG	sv_setuv($arg, (UV)$var);T_CHAR	sv_setpvn($arg, (char *)&$var, 1);T_U_CHAR	sv_setuv($arg, (UV)$var);T_FLOAT	sv_setnv($arg, (double)$var);T_NV	sv_setnv($arg, (NV)$var);T_DOUBLE	sv_setnv($arg, (double)$var);T_PV	sv_setpv((SV*)$arg, $var);T_PTR	sv_setiv($arg, PTR2IV($var));T_PTRREF	sv_setref_pv($arg, Nullch, (void*)$var);T_REF_IV_REF	sv_setref_pv($arg, \"${ntype}\", (void*)new $ntype($var));T_REF_IV_PTR	sv_setref_pv($arg, \"${ntype}\", (void*)$var);T_PTROBJ	sv_setref_pv($arg, \"${ntype}\", (void*)$var);T_PTRDESC	sv_setref_pv($arg, \"${ntype}\", (void*)new\U${type}_DESC\E($var));T_REFREF	sv_setrefref($arg, \"${ntype}\", XS_service_$ntype,		    ($var ? (void*)new $ntype($var) : 0));T_REFOBJ	NOT IMPLEMENTEDT_OPAQUE	sv_setpvn($arg, (char *)&$var, sizeof($var));T_OPAQUEPTR	sv_setpvn($arg, (char *)$var, sizeof(*$var));T_PACKED	XS_pack_$ntype($arg, $var);T_PACKEDARRAY	XS_pack_$ntype($arg, $var, count_$ntype);T_DATAUNIT		sv_setpvn($arg, $var.chp(), $var.size());T_CALLBACK	sv_setpvn($arg, $var.context.value().chp(),		$var.context.value().size());T_ARRAY	ST_EXTEND($var.size);	for (U32 ix_$var = 0; ix_$var < $var.size; ix_$var++) {		ST(ix_$var) = sv_newmortal();	DO_ARRAY_ELEM	}	SP += $var.size - 1;T_IN	{	    GV *gv = newGVgen("$Package");	    if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) )		sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));	    else		$arg = &PL_sv_undef;	}T_INOUT	{	    GV *gv = newGVgen("$Package");	    if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) )		sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));	    else		$arg = &PL_sv_undef;	}T_OUT	{	    GV *gv = newGVgen("$Package");	    if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) )		sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));	    else		$arg = &PL_sv_undef;	}

⌨️ 快捷键说明

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