C语言 #define 中的UL

U和L是 整数文字量的后缀修饰,用于显示指明整数文字量的类型为unsigned int(U)long int(L)
类似的还有浮点数文字量的后缀修饰F 或 f,用于指明文字量表示的是一个float,而不是默认情况下的double


现在才明白UL是标记该宏长整型 十进制 数据,而不是字符,也不是int型数据
C语言中默认宏中的数字是整型数据。
如下面的例子:

#define LENGTH (20UL*1024*1024)
//你要输出他的话就要这样:
printf(“LENGTH is %ld/n”,LENGTH);

例如:

#include <stdio.h>

#define SECONDS_PER_YEAR  60*60*24*365UL
int main(void)
{
    unsigned long int  a = SECONDS_PER_YEAR;
    printf("a = %ld/n",a);
    return 0;
}

输出结果为

a = 31536000;

注意:

#define SECONDS_PER_YEAR  60*60*24*365UL //错误
#define SECONDS_PER_YEAR  (60*60*24*365)UL

编译GCC程序,提示这个错误 error: expected ‘,’ or ‘;’ before ‘UL’;是因为UL写在了括号外面,无法与数据进行匹配;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值