用宏定义写一年有多少秒的问题

奋斗的IT青年 2013-03-26 11:35:34
我是这样写的,
#define SECONDS (60*60*24*365)


有人这么写的
#define SECONDS (60*60*24*365)UL

但这样写的话,
#include <stdio.h>
#define SECONDS (60*60*24*365)UL

void main()
{
int a=10,b=10;
printf("%lu\n", SECONDS);
}
这样的话,程序编译出错。是什么问题呢?
...全文
451 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin5161678 2013-03-26
  • 打赏
  • 举报
回复
UL LU这些是跟在一个整型字面量后面的 不是跟在一个)后面
_sunshine 2013-03-26
  • 打赏
  • 举报
回复

#define SECONDS  60*60*24*365UL  //正确格式
氰客 2013-03-26
  • 打赏
  • 举报
回复
#define SECONDS  (60UL*60UL*24UL*365UL)
sfd1234 2013-03-26
  • 打赏
  • 举报
回复
宏定义是没有问题的!!!!!!
starytx 2013-03-26
  • 打赏
  • 举报
回复
宏就是简单的文本替换,你把那个SECONDS用后边的东西替换后放到printf里,那叫啥啊
_sunshine 2013-03-26
  • 打赏
  • 举报
回复
有人这么写?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧