在here的答案后,我想看看snprintf使用多少个字节。下面的代码snprintf如何对齐字节
#include "stdio.h"
int main() {
printf("%d\n", snprintf(NULL, 0, "%d:%llx:%d:%llx:%llx:%llx", 0, 0, 0, 0, 0, 0));
printf("%d\n", snprintf(NULL, 0, "%d:%llx:%d:%llx:%llx:", 0, 0, 0, 0, 0));
printf("%d\n", snprintf(NULL, 0, "%llx", 0));
return 0;
}
返回
22
10
1
我不知道如何在印刷可以使用12个字节,如果其单独使用,同时它仅使用1个字节的其他数据的端部的%LLX。 snprintf能做任何字节对齐吗?
@Stargateur UB是U. –
@DavidSchwartz事实上,没关系,我总是忘了是c不推断可变参数函数类型。 – Stargateur
未定义的行为,schmundefined schmehaviour。 –