为了账号安全,请及时绑定邮箱和手机立即绑定

%lu报错

先贴源码

#include <stdio.h>

int main()

{

    int a = 99;

    printf("%d\n",sizeof(a));

    printf("%lu\n",sizeof(a));

    return 0;

}

今天第一次见%lu,查了一下,是无符号长整形,就想试一下

上面是我的代码,把 printf("%lu\n",sizeof(a)); 注释掉,只用%d是可以的

但用%lu就提示

warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘unsigned int’ [-Wformat=]

  printf("%lu\n",sizeof(a));

为什么?

是版本问题么?

视频中老师也是这样写的啊

正在回答

2 回答

%lu是无符号长整形 你提供的参数是无符号整形,用%u试试。

0 回复 有任何疑惑可以回复我~
#1

xiele 提问者

非常感谢!
2016-10-27 回复 有任何疑惑可以回复我~

在括号里面写上a的类型试试

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Linux C语言结构体
  • 参与学习       118471    人
  • 解答问题       166    个

C语言的深入,帮助小伙伴们进一步的理解C语言,赶紧看过来

进入课程
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号