问答详情
源自:4-1 Linux C公用体

%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));

为什么?

是版本问题么?

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

提问者:xiele 2016-10-19 11:15

个回答

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

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

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

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