例如:
1. 转换 32 位 IP 地址 (IPv4):
unsigned char ByteAddress[4]; unsigned int* IntegerAddress; IntegerAddress = reinterpret_cast<unsigned int*> &ByteAddress ;
然后我可以使用 IntegerAddress 来比较 IP 地址。
2. 转换 128 位 IP 地址 (IPv6):
unsigned char ByteAddress[16]; uint64_t* LongAddress; LongAddress = reinterpret_cast<uint64_t*> &ByteAddress
然后我可以使用 LongAddress [0] 和 LongAddress [1] 来比较 IP 地址。
它是否优于使用位移运算符(因为它更快)?这是良好的编程习惯吗?它是否适用于所有平台(尤其是 unix 和 windows 64)和编译器(C++、VS2010)