我正在尝试打印一个 `uint16_t` 和 `uint32_t` 的值,但输出结果不符合预期。
我也使用过。
#include <stdio.h>
#include <netinet/in.h>
int main()
{
uint32_t a = 12, a1;
uint16_t b = 1, b1;
a1 = htonl(a);
printf("%d---------%d", a1);
b1 = htons(b);
printf("\n%d-----%d", b, b1);
return 0;
}
我也使用过。
printf("%"PRIu32, a);
显示错误。
如何打印这些值,期望的输出是什么?
printf("%d---------%d",a1);
产生未定义的行为,因为您在格式字符串中有两个 %d,但只传递了一个参数。 - Jerry Jeremiah