%lu报错

来源:4-1 Linux C公用体

xiele

2016-10-19 11:15

先贴源码

#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回答

  • z3phyr
    2016-10-26 04:51:22
    已采纳

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

    xiele

    非常感谢!

    2016-10-27 13:25:08

    共 1 条回复 >

  • 慕粉3206794
    2016-10-22 09:49:32

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

Linux C语言结构体

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

118471 学习 · 166 问题

查看课程

相似问题