主题:【游戏】不看不知道,一看吓一跳!!! -- Highway
#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年代设计的, 评判标准当然不一样了.
- 相关回复 上下关系8
压缩 2 层
😁第二题答得比较不错。第一题没有切中要害, Highway 字22 2005-07-05 21:18:08
补充回答 1 moridin 字320 2005-07-06 13:58:08
😅再补充两句,C/C++其实和Java一样“笨”。 Highway 字652 2005-07-05 13:00:49
😮FT, 的确如此
😁看来好多东西要动手才行。 Highway 字24 2005-07-05 17:37:50
😉有些问题你可能不知道。第一题在以前一直都是错误的。但 Highway 字946 2005-07-04 22:49:20
😥发错了, 空贴 truth 字0 2005-07-05 15:30:11
呵呵, 我们是从程序员的角度来看问题的 1 truth 字1455 2005-07-05 13:51:52