现在的位置: 首页 > 综合 > 正文

跨平台问题

2013年12月03日 ⁄ 综合 ⁄ 共 637字 ⁄ 字号 评论关闭

1.time_t

time_t在windows下还是个64位的int,到了linux下变成了32位的了,害惨我了

 

2.文件名问题

win下比如头文件包含是不区分大小写的,而Linux下区分

 

3.路径问题

就是/和/的区别了

 

4.空格问题

std::vector<std::vector<>>这个在vc下能识别,到了linux下就不行了,连着的两个>>中间需要加个空格才能识别std::vector<std::vector<> >

 

5.内置函数

在vc下atoi和itoa等等都有,传到linux下编译不过,汗,找不到 itoa,网上搜了一下,linux下是没有的,我吐了

微软太好了

 

6.函数返回问题

最近出了一个bug,也是害的我同事查了半天,原因就是函数返回的问题,我写了个下面类似的函数

int fun(int size)

{

  for(int i=0; i<size; ++i)

  {

    ...

    return 0;

  }

}

问题就是函数最好少了个返回值,也就是当size==0时就没有返回值了,不知道是vc可恨还是gcc可恨,反正是在windows下每次无论怎样都会返回0,而悲剧的是如果size!=0的话gcc返回的是个随机的值,其实这种问题应该可以避免的,毕竟编译器这种错误还是会有个警告信息的,可是最悲剧的是整个代码成百上千个警告信息,我的那个小心的警告就这样被无情的掩埋了,当然如果当初单独编译一个cpp应该就不会出现这种情况了,反正又是悲剧了一回,老大说把所有警告信息消灭的计划得等上一段时间

抱歉!评论已关闭.