• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ FN函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中FN函数的典型用法代码示例。如果您正苦于以下问题:C++ FN函数的具体用法?C++ FN怎么用?C++ FN使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了FN函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: Dis_FPU2op

	void Dis_FPU2op(MIPSOpcode op, char *out)
	{
		int fs = _FS;
		int fd = _FD;
		const char *name = MIPSGetName(op);
		sprintf(out, "%s\t%s, %s",name,FN(fd),FN(fs));
	}
开发者ID:Devil084,项目名称:ppsspp,代码行数:7,代码来源:MIPSDis.cpp


示例2: Dis_FPUComp

	void Dis_FPUComp(MIPSOpcode op, char *out)
	{
		int fs = _FS;
		int ft = _FT;
		const char *name = MIPSGetName(op);
		sprintf(out, "%s\t%s, %s",name,FN(fs),FN(ft));
	}
开发者ID:Devil084,项目名称:ppsspp,代码行数:7,代码来源:MIPSDis.cpp


示例3: setup_engine

static bool setup_engine(
	struct i2c_engine *i2c_engine)
{
	struct i2c_hw_engine_dce110 *hw_engine = FROM_I2C_ENGINE(i2c_engine);

	/* Program pin select */
	REG_UPDATE_6(
			DC_I2C_CONTROL,
			DC_I2C_GO, 0,
			DC_I2C_SOFT_RESET, 0,
			DC_I2C_SEND_RESET, 0,
			DC_I2C_SW_STATUS_RESET, 1,
			DC_I2C_TRANSACTION_COUNT, 0,
			DC_I2C_DDC_SELECT, hw_engine->engine_id);

	/* Program time limit */
	REG_UPDATE_N(
			SETUP, 2,
			FN(DC_I2C_DDC1_SETUP, DC_I2C_DDC1_TIME_LIMIT), I2C_SETUP_TIME_LIMIT,
			FN(DC_I2C_DDC1_SETUP, DC_I2C_DDC1_ENABLE), 1);

	/* Program HW priority
	 * set to High - interrupt software I2C at any time
	 * Enable restart of SW I2C that was interrupted by HW
	 * disable queuing of software while I2C is in use by HW */
	REG_UPDATE_2(
			DC_I2C_ARBITRATION,
			DC_I2C_NO_QUEUED_SW_GO, 0,
			DC_I2C_SW_PRIORITY, DC_I2C_ARBITRATION__DC_I2C_SW_PRIORITY_NORMAL);

	return true;
}
开发者ID:CCNITSilchar,项目名称:linux,代码行数:32,代码来源:i2c_hw_engine_dce110.c


示例4: setup_engine

static bool setup_engine(
	struct dce_i2c_hw *dce_i2c_hw)
{
	uint32_t i2c_setup_limit = I2C_SETUP_TIME_LIMIT_DCE;

	if (dce_i2c_hw->setup_limit != 0)
		i2c_setup_limit = dce_i2c_hw->setup_limit;
	/* Program pin select */
	REG_UPDATE_6(DC_I2C_CONTROL,
		     DC_I2C_GO, 0,
		     DC_I2C_SOFT_RESET, 0,
		     DC_I2C_SEND_RESET, 0,
		     DC_I2C_SW_STATUS_RESET, 1,
		     DC_I2C_TRANSACTION_COUNT, 0,
		     DC_I2C_DDC_SELECT, dce_i2c_hw->engine_id);

	/* Program time limit */
	if (dce_i2c_hw->send_reset_length == 0) {
		/*pre-dcn*/
		REG_UPDATE_N(SETUP, 2,
			     FN(DC_I2C_DDC1_SETUP, DC_I2C_DDC1_TIME_LIMIT), i2c_setup_limit,
			     FN(DC_I2C_DDC1_SETUP, DC_I2C_DDC1_ENABLE), 1);
	}
	/* Program HW priority
	 * set to High - interrupt software I2C at any time
	 * Enable restart of SW I2C that was interrupted by HW
	 * disable queuing of software while I2C is in use by HW
	 */
	REG_UPDATE_2(DC_I2C_ARBITRATION,
		     DC_I2C_NO_QUEUED_SW_GO, 0,
		     DC_I2C_SW_PRIORITY, DC_I2C_ARBITRATION__DC_I2C_SW_PRIORITY_NORMAL);

	return true;
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:34,代码来源:dce_i2c_hw.c


示例5: execute_transaction

static void execute_transaction(
	struct dce_i2c_hw *dce_i2c_hw)
{
	REG_UPDATE_N(SETUP, 5,
		     FN(DC_I2C_DDC1_SETUP, DC_I2C_DDC1_DATA_DRIVE_EN), 0,
		     FN(DC_I2C_DDC1_SETUP, DC_I2C_DDC1_CLK_DRIVE_EN), 0,
		     FN(DC_I2C_DDC1_SETUP, DC_I2C_DDC1_DATA_DRIVE_SEL), 0,
		     FN(DC_I2C_DDC1_SETUP, DC_I2C_DDC1_INTRA_TRANSACTION_DELAY), 0,
		     FN(DC_I2C_DDC1_SETUP, DC_I2C_DDC1_INTRA_BYTE_DELAY), 0);


	REG_UPDATE_5(DC_I2C_CONTROL,
		     DC_I2C_SOFT_RESET, 0,
		     DC_I2C_SW_STATUS_RESET, 0,
		     DC_I2C_SEND_RESET, 0,
		     DC_I2C_GO, 0,
		     DC_I2C_TRANSACTION_COUNT, dce_i2c_hw->transaction_count - 1);

	/* start I2C transfer */
	REG_UPDATE(DC_I2C_CONTROL, DC_I2C_GO, 1);

	/* all transactions were executed and HW buffer became empty
	 * (even though it actually happens when status becomes DONE)
	 */
	dce_i2c_hw->transaction_count = 0;
	dce_i2c_hw->buffer_used_bytes = 0;
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:27,代码来源:dce_i2c_hw.c


示例6: Dis_FPU3op

void Dis_FPU3op(u32 op, char *out)
{
    int ft = _FT;
    int fs = _FS;
    int fd = _FD;;
    const char *name = MIPSGetName(op);
    sprintf(out, "%s\t%s, %s, %s",name,FN(fd),FN(fs),FN(ft));
}
开发者ID:HomerSp,项目名称:ppsspp,代码行数:8,代码来源:MIPSDis.cpp


示例7: FN

int FN(bscc_main)()
{
	int *arr;
	int i, j, t, sz;

	sz=1<<22;

	arr=malloc(sz*sizeof(int));

	for(i=0; i<sz; i++)arr[i]=rand()*251+rand();

	t=clock();
	FN(hsortm)(arr, sz);
	printf("HSort %d\n", clock()-t);
	FN(sortchk)(arr, sz);


	for(i=0; i<sz; i++)arr[i]=rand()*251+rand();

	t=clock();
	FN(Sort0)(arr, 0, sz);
	printf("Sort0 %d\n", clock()-t);
	FN(sortchk)(arr, sz);


	for(i=0; i<sz; i++)arr[i]=rand()*251+rand();

	t=clock();
	FN(Sort1)(arr, 0, sz);
	printf("Sort1 %d\n", clock()-t);
	FN(sortchk)(arr, sz);

	for(i=0; i<sz; i++)arr[i]=rand()*251+rand();

	t=clock();
	FN(Sort2)(arr, 0, sz);
	printf("Sort2 %d\n", clock()-t);
	FN(sortchk)(arr, sz);


	for(i=0; i<sz; i++)arr[i]=rand()*251+rand();
	t=clock();
	qsort(arr, sz, 4, FN(qs_cmp_i));
	printf("QSort %d\n", clock()-t);
	FN(sortchk)(arr, sz);

	return(0);
}
开发者ID:cr88192,项目名称:bgbtech_engine,代码行数:48,代码来源:sorttest1.c


示例8: FN

//---------------------------------------------------------------------------
bool File::Exists(const Ztring &File_Name)
{
    #ifdef ZENLIB_USEWX
        wxFileName FN(File_Name.c_str());
        return FN.FileExists();
    #else //ZENLIB_USEWX
        #ifdef ZENLIB_STANDARD
            if (File_Name.find(__T('*'))!=std::string::npos || File_Name.find(__T('?'))!=std::string::npos)
                return false;
            struct stat buffer;
            int         status;
            #ifdef UNICODE
                status=stat(File_Name.To_Local().c_str(), &buffer);
            #else
                status=stat(File_Name.c_str(), &buffer);
            #endif //UNICODE
            return status==0 && S_ISREG(buffer.st_mode);
        #elif defined WINDOWS
            if (File_Name.find(__T('*'))!=std::string::npos || (File_Name.find(__T("\\\\?\\"))!=0 && File_Name.find(__T('?'))!=std::string::npos) || (File_Name.find(__T("\\\\?\\"))==0 && File_Name.find(__T('?'), 4)!=std::string::npos))
                return false;
            #ifdef UNICODE
                DWORD FileAttributes=GetFileAttributesW(File_Name.c_str());
            #else
                DWORD FileAttributes=GetFileAttributes(File_Name.c_str());
            #endif //UNICODE
            return ((FileAttributes!=INVALID_FILE_ATTRIBUTES) && !(FileAttributes&FILE_ATTRIBUTE_DIRECTORY));
        #endif
    #endif //ZENLIB_USEWX
}
开发者ID:Armada651,项目名称:mpc-hc,代码行数:30,代码来源:File.cpp


示例9: FN

//---------------------------------------------------------------------------
Ztring& FileName::Extension_Set(const Ztring &Extension)
{
    #ifdef ZENLIB_USEWX
        wxFileName FN(c_str());
        FN.SetExt(Extension.c_str());
        assign (FN.GetFullPath().c_str());
    #else //ZENLIB_USEWX
        #ifdef WINDOWS
            //Path limit
            size_t Pos_Path=rfind(_T('\\'));
            if (Pos_Path==Ztring::npos)
                Pos_Path=0; //Not found
            //Extension limit
            size_t Pos_Ext=rfind(_T('.'));
            if (Pos_Ext==Ztring::npos || Pos_Ext<Pos_Path)
            {
                append(1, _T('.')); //Not found
                Pos_Ext=size()-1;
            }
            replace(Pos_Ext+1, size()-Pos_Ext-1, Extension, 0, Ztring::npos);
        #else
            //Not supported
        #endif
    #endif //ZENLIB_USEWX
    return *this;
}
开发者ID:Kyouju,项目名称:mpc-hc,代码行数:27,代码来源:FileName.cpp


示例10: FN

//---------------------------------------------------------------------------
bool Dir::Exists(const Ztring &File_Name)
{
    #ifdef ZENLIB_USEWX
        wxFileName FN(File_Name.c_str());
        return FN.DirExists();
    #else //ZENLIB_USEWX
       #ifdef WINDOWS
            #ifdef UNICODE
                DWORD FileAttributes;
                #ifndef ZENLIB_NO_WIN9X_SUPPORT
                if (IsWin9X_Fast())
                    FileAttributes=GetFileAttributesA(File_Name.To_Local().c_str());
                else
                #endif //ZENLIB_NO_WIN9X_SUPPORT
                    FileAttributes=GetFileAttributesW(File_Name.c_str());
            #else
                DWORD FileAttributes=GetFileAttributes(File_Name.c_str());
            #endif //UNICODE
            return ((FileAttributes!=INVALID_FILE_ATTRIBUTES) && (FileAttributes&FILE_ATTRIBUTE_DIRECTORY));
        #else //WINDOWS
            struct stat buffer;
            int         status;
            #ifdef UNICODE
                status=stat(File_Name.To_Local().c_str(), &buffer);
            #else
                status=stat(File_Name.c_str(), &buffer);
            #endif //UNICODE
            return status==0 && S_ISDIR(buffer.st_mode);
        #endif
    #endif //ZENLIB_USEWX
}
开发者ID:achiarifman,项目名称:mkm4v,代码行数:32,代码来源:Dir.cpp


示例11: FN

//---------------------------------------------------------------------------
bool File::Exists(const Ztring &File_Name)
{
    #ifdef ZENLIB_USEWX
        wxFileName FN(File_Name.c_str());
        return FN.FileExists();
    #else //ZENLIB_USEWX
        #ifdef ZENLIB_STANDARD
            struct stat buffer;
            int         status;
            #ifdef UNICODE
                status=stat(File_Name.To_Local().c_str(), &buffer);
            #else
                status=stat(File_Name.c_str(), &buffer);
            #endif //UNICODE
            return status==0 && S_ISREG(buffer.st_mode);
        #elif defined WINDOWS
            #ifdef UNICODE
                DWORD FileAttributes;
                if (IsWin9X())
                    FileAttributes=GetFileAttributesA(File_Name.To_Local().c_str());
                else
                    FileAttributes=GetFileAttributesW(File_Name.c_str());
            #else
                DWORD FileAttributes=GetFileAttributes(File_Name.c_str());
            #endif //UNICODE
            return ((FileAttributes!=INVALID_FILE_ATTRIBUTES) && !(FileAttributes&FILE_ATTRIBUTE_DIRECTORY));
        #endif
    #endif //ZENLIB_USEWX
}
开发者ID:asfdfdfd,项目名称:MediaInfoLib-Avdump2-Mac,代码行数:30,代码来源:File.cpp


示例12: _

void wxWidgetsGUIConfigPanel::OnButton1Click(wxCommandEvent& event)
{
    wxString FileName = ::wxFileSelector(
        _("Select resource file"),
        _T(""),_T(""),_T(""),
        _("XRC files (*.xrc)|*.xrc|"
          "Zipped files (*.zip)|*.zip|"
          "All files (*)|*"),
        wxFD_OPEN | wxFD_FILE_MUST_EXIST | compatibility::wxHideReadonly);

    if ( !FileName.empty() )
    {
        wxFileName FN(FileName);
        FN.MakeRelativeTo(m_GUI->GetProjectPath());
        wxString Ext = FN.GetExt();
        FileName = FN.GetFullPath();
        if ( Ext == _T("zip") || Ext == _T("ZIP") )
        {
            FileName.Append(_T("#zip:*.xrc"));
        }
        wxString CurrentContent = AutoLoad->GetValue();
        if ( CurrentContent.Length() && ( CurrentContent[CurrentContent.Length()-1] != _T('\n') ) )
        {
            AutoLoad->AppendText(_T("\n"));
        }
        AutoLoad->AppendText(FileName);
        AutoLoad->AppendText(_T("\n"));
    }
}
开发者ID:stahta01,项目名称:codeblocks_r7456,代码行数:29,代码来源:wxwidgetsguiconfigpanel.cpp


示例13: release_engine

static void release_engine(
	struct dce_i2c_hw *dce_i2c_hw)
{
	bool safe_to_reset;

	/* Restore original HW engine speed */

	set_speed(dce_i2c_hw, dce_i2c_hw->original_speed);

	/* Release I2C */
	REG_UPDATE(DC_I2C_ARBITRATION, DC_I2C_SW_DONE_USING_I2C_REG, 1);

	/* Reset HW engine */
	{
		uint32_t i2c_sw_status = 0;

		REG_GET(DC_I2C_SW_STATUS, DC_I2C_SW_STATUS, &i2c_sw_status);
		/* if used by SW, safe to reset */
		safe_to_reset = (i2c_sw_status == 1);
	}

	if (safe_to_reset)
		REG_UPDATE_2(DC_I2C_CONTROL,
			     DC_I2C_SOFT_RESET, 1,
			     DC_I2C_SW_STATUS_RESET, 1);
	else
		REG_UPDATE(DC_I2C_CONTROL, DC_I2C_SW_STATUS_RESET, 1);
	/* HW I2c engine - clock gating feature */
	if (!dce_i2c_hw->engine_keep_power_up_count)
		REG_UPDATE_N(SETUP, 1, FN(SETUP, DC_I2C_DDC1_ENABLE), 0);

}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:32,代码来源:dce_i2c_hw.c


示例14: Dis_mxc1

	void Dis_mxc1(MIPSOpcode op, char *out)
	{
		int fs = _FS;
		int rt = _RT;
		const char *name = MIPSGetName(op);
		sprintf(out, "%s\t%s, %s",name,RN(rt),FN(fs));
	}
开发者ID:Devil084,项目名称:ppsspp,代码行数:7,代码来源:MIPSDis.cpp


示例15: main

int main(){
	prepare_shuffling_dictionary();
	prepare_shuffling_dictionary_avx();

	const testcase tests[] = {
		{
			"equal lists",
			{0,2,4,7, 11,13,23,32, 33,42,44,48, 53,55,60,64}, // list1
			{0,2,4,7, 11,13,23,32, 33,42,44,48, 53,55,60,64}, // list2
			{0,2,4,7, 11,13,23,32, 33,42,44,48, 53,55,60,64}, // intersection result
			{0,2,4,7, 11,13,23,32, 33,42,44,48, 53,55,60,64}, // union result
			{}  // difference result
		},{
			"completely different lists",
			{0,2,4,7, 11,13,23,32, 33,42,44,48, 53,55,60,64},
			{1,3,5,6, 10,12,27,31, 36,47,50,51, 52,66,77,88},
			{},
			{0,1,2,3,4,5,6,7, 10,11,12,13,23,27,31,32, 33,36,42,44,47,48,50,51, 52,53,55,60,64,66,77,88},
			{0,2,4,7, 11,13,23,32, 33,42,44,48, 53,55,60,64}
		},{
			"no match in first",
			{0,2,4,7, 11,13,23,32, 33,42,44,48, 53,55,60,64, 66,67,68,69, 77,78,79,80, 81,82,83,84, 87,88,89,99},
			{1,3,5,6, 10,12,27,31, 36,47,50,51, 52,66,77,88},
			{66,77,88},
			{0,1,2,3,4,5,6,7, 10,11,12,13,23,27,31,32, 33,36,42,44,47,48,50,51, 52,53,55,60,64, 66,67,68,69, 77,78,79,80, 81,82,83,84, 87,88,89,99},
			{0,2,4,7, 11,13,23,32, 33,42,44,48, 53,55,60,64, 67,68,69, 78,79,80, 81,82,83,84, 87,89,99}
		}
	};
	constexpr int tests_size = sizeof(tests) / sizeof(testcase);

	#define FN(x) {#x, x}
	run(
		tests, tests_size,
		{
			FN(intersect_vector_sse),
			FN(intersect_vector_sse_asm),
			FN(intersect_vector_avx),
#ifdef __AVX2__
			FN(intersect_vector_avx2),
			FN(intersect_vector_avx2_asm)
#endif
		},
		{
			FN(union_vector_sse)
		},
		{
			FN(difference_vector_sse),
#ifdef __AVX2__
			FN(difference_vector_avx2),
#endif
		}
	);

	free(shuffle_mask_avx);
	return 0;
}
开发者ID:tetzank,项目名称:SIMDSetOperations,代码行数:56,代码来源:tests.cpp


示例16: set_speed

static void set_speed(
	struct dce_i2c_hw *dce_i2c_hw,
	uint32_t speed)
{

	if (speed) {
		if (dce_i2c_hw->masks->DC_I2C_DDC1_START_STOP_TIMING_CNTL)
			REG_UPDATE_N(SPEED, 3,
				     FN(DC_I2C_DDC1_SPEED, DC_I2C_DDC1_PRESCALE), dce_i2c_hw->reference_frequency / speed,
				     FN(DC_I2C_DDC1_SPEED, DC_I2C_DDC1_THRESHOLD), 2,
				     FN(DC_I2C_DDC1_SPEED, DC_I2C_DDC1_START_STOP_TIMING_CNTL), speed > 50 ? 2:1);
		else
			REG_UPDATE_N(SPEED, 2,
				     FN(DC_I2C_DDC1_SPEED, DC_I2C_DDC1_PRESCALE), dce_i2c_hw->reference_frequency / speed,
				     FN(DC_I2C_DDC1_SPEED, DC_I2C_DDC1_THRESHOLD), 2);
	}
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:17,代码来源:dce_i2c_hw.c


示例17: Dis_FPULS

void Dis_FPULS(u32 op, char *out)
{
    int offset = (signed short)(op&0xFFFF);
    int ft = _FT;
    int rs = _RS;
    const char *name = MIPSGetName(op);
    sprintf(out, "%s\t%s, %d(%s)",name,FN(ft),offset,RN(rs));
}
开发者ID:HomerSp,项目名称:ppsspp,代码行数:8,代码来源:MIPSDis.cpp


示例18: Dis_FPULS

	void Dis_FPULS(MIPSOpcode op, char *out)
	{
		int offset = (signed short)(op&0xFFFF);
		int ft = _FT;
		int rs = _RS;
		const char *name = MIPSGetName(op);
		sprintf(out, "%s\t%s, %s(%s)",name,FN(ft),SignedHex(offset),RN(rs));
	}
开发者ID:Devil084,项目名称:ppsspp,代码行数:8,代码来源:MIPSDis.cpp


示例19: fill_array_ic

void fill_array_ic(aveq *A, function *G, function *S, int k, int l_or_not) { //intero per decidere se utilizzare onda quadra o gaussiana
                                                                          //l_or_not = 0 tutti, l_or_not = 1 Leapfrog

    int i;

        switch(l_or_not) {
            case 0:
                    if( k == 1 ) { //condizione fissata per la gaussiana
                        for(i = 0; i < A->dim; i++) {
                            A->tsol[i] = FN(G,i*A->xstep);
                            A->solution[i] = FN(G,i*A->xstep);
                            A->tsol_1[i] = FN(G,i*A->xstep);
                        }
                    } else if ( k == 0 ) { //condizione fissata per l'onda quadra
                        for(i = 0; i < A->dim; i++) {
                            A->tsol[i] = FN(S,i*A->xstep);
                            A->solution[i] = FN(S,i*A->xstep);
                            A->tsol_1[i] = FN(S,i*A->xstep);
                        }
                    } else { //condizione a casaccio: errore
                        printf("#Errore: inserire una condizione valida (0 o 1).\n");
                        exit(0); //blocca esecuzione del programma??
                    }
            case 1:
                    if( k == 1 ) { //condizione fissata per la gaussiana
                        for(i = 0; i < A->dim; i++) {
                            A->tsol[i] = FN(G,i*A->xstep);
                            A->tsol_1[i] = FN(G,i*A->xstep + A->tstep);
                        }
                    } else if ( k == 0 ) { //condizione fissata per l'onda quadra
                        for(i = 0; i < A->dim; i++) {
                        A->tsol[i] = FN(S,i*A->xstep);
                        A->tsol_1[i] = FN(S,i*A->xstep + A->tstep);
                        }
                    } else { //condizione a casaccio: errore
                        printf("#Errore: inserire una condizione valida (0 o 1).\n");
                        exit(0); //blocca esecuzione del programma??
                    }
        }



}
开发者ID:SBolo,项目名称:GitComputationalPhysics,代码行数:43,代码来源:aveq.c


示例20: isl_point_get_ctx

/* Evaluate "u" in the void point "pnt".
 * In particular, return the value NaN.
 */
static __isl_give isl_val *FN(UNION,eval_void)(__isl_take UNION *u,
	__isl_take isl_point *pnt)
{
	isl_ctx *ctx;

	ctx = isl_point_get_ctx(pnt);
	FN(UNION,free)(u);
	isl_point_free(pnt);
	return isl_val_nan(ctx);
}
开发者ID:Meinersbur,项目名称:isl,代码行数:13,代码来源:isl_union_eval.c



注:本文中的FN函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ FName函数代码示例发布时间:2022-05-30
下一篇:
C++ FMargin函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap