在处理一个从二进制文件中读取结构数据类型的简单项目时,我遇到了一个奇怪的 printf 格式类型混杂。基本上我大部分时间都使用 %u 格式来显示无符号整数,而在我的结构中是一个类型为 unsigned long long 的成员,以格式显示此数据字符会导致一些奇怪的情况,并且会浪费几个小时来寻找错误类型。
当然,当我使用 %llu 格式时,一切都按预期进行。
这是由于 printf 的工作方式和实现方式造成的吗?
unsigned long long 将使用 %llu 打印。使用不匹配类型的变量会调用未定义的行为。
