在我的代码中,我使用以太网 MAC 地址并需要比较 00:00:00:00:00:00 地址;我想到的最简单的解决方案是:
#define ETH_ADDR_LEN 6
unsigned char mac[ETH_ADDR_LEN] = { 0x1, 0x2, 0x3, 0x4, 0x5, 0x6 }; /* example */
const unsigned char empty[ETH_ADDR_LEN] = { 0, };
if (memcmp(mac, empty, ETH_ADDR_LEN) == 0) {
....
}
是否有更简洁的方法来实现我的目标? 简单的 memcmp(mac, "", 6) 是行不通的——我可以知道为什么吗?
提前致谢!
最佳答案
您的代码没有任何问题。保持原样。 “空”数组包含 6 个零,因此它可以正常工作。
关于与 6 字节长的零字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5884597/