C++ Windows移植到 linux 笔记
1. float,double混合运算,都换成double运算吧。
同样的计算式
float tmpDetaAzimuth = 5400.0000f *(-2.6000001f) / 60.000000f;
liunux下:
windwos下:
第六位差5
2. 取绝对值函数abs,linux下没重载double。
Linux:
Windows
原本double的地方,小数全没了,影响不是一星半点。
3. STL中的sort,因为是不稳定排序,排序比较字段相等情况下,不保证原有顺序,也是造成跨平台不一致的原因
排序前(按第三列数字大小排序)
排序后
Linux下6162行顺序变化了。
Window下则不会。
因此,得用稳定排序,std::stable_sort();
4.随机数。
上面代码windows,linux生成时不一样的。
推荐用boost库替代。
(ps: 加锁防止多线程二义性)
。。。tobe continue