Alt*_*nai 1 c printf ipv4 ipv6
我想要printf类型为ipv6地址的值 struct in6_addr 和类型为u_int32_tconsole的ipv4地址.
我尝试过类型转换,但会产生错误
error: aggregate value used where an integer was expected
printf("---------------- ipv4= %zu ipv6 = %zu ",(size_t)ipv4, (size_t)ipv6);
Run Code Online (Sandbox Code Playgroud)
%s ,%lu在堆栈溢出和其他地方经历旧问题之后,我还尝试了许多其他方法.
如果有人有解决方案,我将非常感激.
in6_addr是一个包含union的结构,你不能只将它强制转换为size_t并希望它能够工作.您应该使用inet_ntop它将其转换为人类可读的形式.有关详细信息,请参阅http://www.beej.us/guide/bgnet/output/html/multipage/inet_ntopman.html.