我的sizeof运算符有什么问题?

时间:2016-06-16 01:55:03

标签: visual-studio-code sizeof

我尝试过sizeof运算符(VS代码,Mac)

#include <stdio.h>

int main()
{
    char i;
    int  j;
    double k;

    printf("%d\n", sizeof(i));
    printf("%d\n", sizeof(j));
    printf("%d\n", sizeof(k));

    return 0;
}

但警告说:

warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
printf("%d\n", sizeof(k)); 
        %lu

有什么问题?我认为语法没有问题,它显示了输出。

1 个答案:

答案 0 :(得分:0)

sizeof运算符没有问题 您使用了printf的错误说明符。

sizeof返回size_t size_t的实际类型是实现定义的 因此,%z是打印size_t

的正确说明符

使用printf("%zu\n", sizeof(k));