c - short 用作长度修饰符的 h 的缩写是什么?

标签 c printf

在调用 printf 函数时,我们将 short 的长度修饰符传递为 h?

例如

short s=10;
printf("%hd",s);

h 是什么意思?有没有什么特定的理由来命名h?

提出这个问题的动机是标准选择了 l for long。 因为 long 以 l 开头,所以没问题。

Likwise long h代表什么?

最佳答案

是的,通常的理解是'h'表示'half'或'half word',同理'l'表示'long'或'double word'。它实际上意味着“短”,当然“s”已经被采用。

它在 printf 中很有用,因为它确保在打印之前将值转换回 short。在这种情况下,对于 unsigned short int,“%hd”不如“%hu”有用。

它在 scanf 中也很有用,可确保仅将正确数量的位数存储到 short 变量中。 但见What is the purpose of the h and hh modifiers for printf? .

关于c - short 用作长度修饰符的 h 的缩写是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25822361/

相关文章:

c - 反转时我在循环和参数方面遇到了一些问题

c - 如何以编程方式确定 Cassandra 集群中的节点数量?

c - 如何使用cmake安装opencv2.4.6

c - 如何从递归查看的列表中使用sprintf保存字符串

c - scanf() 和 printf() 中的字符串变量名之前的 & 符号或没有 & 符号?

c - 数据类型不匹配和编译器冲突

c - MSP430 兼容性问题

c - libcurl,处理分块数据

c - 单个 printf() 函数是否可以在循环中从 getchar() 获取输入时执行多次?

c - 如何在 C 中使用 union 和 struc 将 float 转换为 IEEE754 double 格式?