跨平臺問題

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應該就不會出現這種情況了,反正又是悲劇了一回,老大說把所有警告信息消滅的計劃得等上一段時間

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章