几个Windows到Linux的代码移植问题

发表于:2012-3-08 10:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Northtibet编译    来源:51Testing软件测试网采编

  1、在Linux实现Win32 API之GetTickCount函数

  为了将Windows中的GetTickCount API函数移植到Linux,可以使用如下的代码:

long GetTickCount()
{
tms tm;
return times(&tm);
}

  2、Windows和Linux系统关于itoa的移植问题

  大家知道,在将Windows的STL代码移植到Linux系统时,由于Linux系统中STL没有实现默认的itoa函数,因此itoa在Linux中无法正常工作。要是在GCC命令行禁用STL的话,那么代码里就无法使用STL,从而丢失可移植性。这里给出一个简单可行的解决方法,以便你碰到这种情况时顺利进行从Windows到Linux的移植:

#if defined(__linux__)

#define _itoa   itoa

char* itoa(int value, char*  str, int radix)
{
int  rem = 0;
int  pos = 0;
char ch  = ''!'' ;
do
{
rem    = value % radix ;
value /= radix;
if ( 16 == radix )
{
if( rem >= 10 && rem <= 15 )
{
switch( rem )
{
case 10:
ch = ''a'' ;
break;
case 11:
ch =''b'' ;
break;
case 12:
ch = ''c'' ;
break;
case 13:
ch =''d'' ;
break;
case 14:
ch = ''e'' ;
break;
case 15:
ch =''f'' ;
break;
}
}
}
if( ''!'' == ch )
{
str[pos++] = (char) ( rem + 0x30 );
}
else
{
str[pos++] = ch ;
}
}while( value != 0 );
str[pos] = ''\0'' ;
return strrev(str);
}

#endif

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号