关闭

c语言 #define 中的UL

标签: 语言cfloat360
521人阅读 评论(0) 收藏 举报
分类:

U和L是 整数文字量的后缀修饰,用于显示指明整数文字量的类型为unsigned int(U)和long int(L)。   
类似的还有浮点数文字量的后缀修饰F或f,用于指明文字量表示的是一个float,而不是默认情况下的double。
经常发现一些C语言中通过#define 定义的数据中包含有UL符号,不理解为什么,把他去掉发现也没有什么区别。
现在才明白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;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:386698次
    • 积分:3135
    • 等级:
    • 排名:第11369名
    • 原创:29篇
    • 转载:99篇
    • 译文:0篇
    • 评论:86条
    文章分类
    最新评论