%ul和%lu C格式说明符之间有什么区别?
在“C Primer Plus”的示例中,作者使用%ul
格式说明符(在scanf和printf中)用于unsigned long 。 当我尝试概括问题时,似乎%ul
在我的计算机中出错了。 但使用%lu
解决了这个问题。
实际上,我不想关注问题和代码行,而是想知道%ul
和%lu
之间的区别。 也许我可以弄清楚什么是错的。
搜索并没有给我一些有用的东西(除了“它们是不同的”)。
任何解释或链接/参考表示赞赏。
%lu
是正确的,而%ul
是不正确的 。
printf
格式说明符遵循格式%[flags][width][.precision][length]specifier
。
u
是一个说明符,表示“无符号十进制整数”。
l
是长度修饰符,意思是“长”。
长度修饰符应该在转换说明符之前,这意味着%lu
是正确的。