使用 zd 与 lu 来确定 sizeof

问题描述

我了解 %zd 是格式化 sizeof 结果的建议方式。但是,我不明白为什么这是必要的。例如,使用 lu 给我相同的输出,而且 sizeof 的结果不是 unsigned long 吗?例如:

printf("Sizeof(char): %lu,Sizeof(short): %lu,Sizeof(int): %lu,Sizeof(long): %lu,Sizeof(long long): %lu,Sizeof(float): %lu,Sizeof(double): %lu,Sizeof(long double): %lu\n",sizeof(char),sizeof(short),sizeof(int),sizeof(long),sizeof(long long),sizeof(float),sizeof(double),sizeof(long double));
printf("Sizeof(char): %zd,Sizeof(short): %zd,Sizeof(int): %zd,Sizeof(long): %zd,Sizeof(long long): %zd,Sizeof(float): %zd,Sizeof(double): %zd,Sizeof(long double): %zd",sizeof(long double));

Sizeof(char): 1,Sizeof(short): 2,Sizeof(int): 4,Sizeof(long): 8,Sizeof(long long): 8,Sizeof(float): 4,Sizeof(double) : 8,Sizeof(long double): 16
Sizeof(char): 1,Sizeof(double): 8,Sizeof(long double): 16

使用 %zd 的原因或优势是什么?为什么首先要添加它?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)