综合技术
直播中

孙乙鑫

7年用户 239经验值
私信 关注
[问答]

为什么我用VC6.0++ 写一个程序这个语句就会报错?

回答都是这样的:
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
我在这想看到几件事情:
1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)
3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。




但是我用VC6.0++ 写一个程序,
这个语句会报错, 删除掉UL就ok了, 请问这个怎么理解呢?
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

回帖(2)

凌云志

2019-10-28 09:10:13
VC6.0...
1. 可能不支持UL这写法
2. 把UL放内部,如365UL
3. 实际上,本来就应该写365UL(或其它数字处),不然括号里面溢出后,外面再加ULL都白干。
举报

申志敏

2019-10-28 09:27:53
编译器的问题吧,不同编译器可能稍微有点区别的
举报

更多回帖

发帖
×
20
完善资料,
赚取积分