Nat*_*lin 1 c printf glibc stdio libc
根据C89草案第4.9.6.1节,%d是一个字符,用于指定要应用的转换类型.
在我看来,转换一词意味着printf("%d", 1.0)定义了.
printf("%d", 1.0)
请确认或反驳此事.
Joh*_*itb 12
转换是将语言值转换为该值的词汇表示.
你的理论是错的; 行为未定义.规范说(7.19.6.1p8和9,使用C99 TC2):
该INT参数转换为符号十进制的风格[ - ] DDDD.
和
如果任何参数不是相应转换规范的正确类型,则行为未定义.
bma*_*ies 8
printf的是一个可变参数的功能,因此无需转换是可能的.编译器只是安排推双到参数列表.printf的有没有办法找出它是一个双对一个int与大象.结果?混沌.
归档时间:
14 年,9 月 前
查看次数:
311 次
最近记录: