与 6 字节长的零字符串进行比较

标签 c string

在我的代码中,我使用以太网 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/

相关文章:

c - 数组映射选定的内存区域

c++ - sizeof - 将指针转换为数组

c - 将内存锁定到 C 中的物理 RAM 以用于动态分配指针

C++:无法使用类型为 'char**' 的右值初始化类型为 'char*[x]' 的变量

java - 将 Set<String> 的内容放入单个字符串的最快方法,其中单词用空格分隔?

python - 使用正则表达式从字符串中提取首字母缩略词模式

c - 将头节点添加到单链表会产生段错误

c# - 检查某个位置是否出现多个子字符串的最快方法

java - 我正在将字符串写入文本文件。但正在打印 null

c - C 尾指针问题中的环形缓冲区(用于音频流)