假设我有
isToggled
然后printf("%llu %llx", one, two);
和one
都可以是two
类型,区别在于它们分别打印为十进制或十六进制。
有一大堆宽度说明符(unsigned long long
,h
,hh
,L
等),看起来它们中的每一个都可以与{{} I
一起使用1}}和u
转换说明符,但每次允许传递右宽度的无符号类型的值。
是否真的比在x
或x
中以前面具有相同宽度说明符的方式结束我可以传递同一时间的值并且它总是合法的吗?
答案 0 :(得分:1)
是否真的比在
x
或u
中以前面具有相同宽度说明符的方式结束我可以传递同一时间的值并且它总是合法的吗?
是的,如果宽度说明符对其中一个有效,那么它对两者都有效,对o
和X
也有效,并且生成的指令服务于相同的数据类型 - 指定宽度的无符号整数。唯一的区别是输出的格式化方式(或scanf
格式,即输入所需的格式。)
有一大堆宽度说明符(
h
,hh
,L
,I
等等 像它们中的每一个都可以与u和x转换说明符一起使用 但每次我都允许传递右边无符号类型的值 宽度。
确实有各种各样的宽度说明符。大多数(但不是全部)适用于整数类型,对应于x
,X
,o
和u
以及签名的无符号类型与d
和i
对应的。但是,该标准未在其中指定L
,并且根本没有指定I
。但是,某些实现可能会将这些实现接受为整数宽度说明符,并具有特定于实现的行为。