西西河

主题:【游戏】不看不知道,一看吓一跳!!! -- Highway

共:💬47 🌺6
全看分页树展 · 主题 跟帖
家园 FT, 的确如此

#include <iostream>

using namespace std;

long long MILL_PER_DAY = 60 * 60 * 24 * 1000;

long long MACRO_PER_DAY = 60LL * 60 * 24 * 1000 * 1000;

main()

{

cout << MILL_PER_DAY << endl;

cout << MACRO_PER_DAY << endl;

cout << MACRO_PER_DAY/MILL_PER_DAY << endl;

}

结果就对了(M$的那个__int64也一样). 看来C/C+里加一个L还不够, 得加两个!

如果不用中间结果:

#include <iostream>

using namespace std;

long long MILL_PER_DAY = 86400000;

long long MACRO_PER_DAY = 86400000000;

main()

{

cout << MILL_PER_DAY << endl;

cout << MACRO_PER_DAY << endl;

cout << MACRO_PER_DAY/MILL_PER_DAY << endl;

}

gcc会报错, cl会正确编译运行.

虽然C/C++也很土, 不过至少不会用16-bit int去存32-bit long的中间结果. C是70年代设计的, C++是80年代设计的, Java是90年代设计的, 评判标准当然不一样了.

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河