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