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应该就不会出现这种情况了,反正又是悲剧了一回,老大说把所有警告信息消灭的计划得等上一段时间