c - 如何从定义初始化 char[]

标签 c arrays

我想将我的定义复制到我的 var IP 中:

#define IP_ADDR {169, 254, 0, 3}

struct
{
  // ....
  char IP[4];

} COM_INFO;

memcpy(COM_INFO.IP, IP_ADDR, 4);

但是这不起作用。

最佳答案

您的定义必须如下所示:

#define IP_ADDR ((unsigned char []){169, 254, 0, 3})

现在您可以对其使用memcpy

示例代码

#include <stdio.h>
#include <string.h>

#define IP_ADDR ((unsigned char []){169, 254, 0, 3})

int main(void)
{
    unsigned char ip[4];

    memcpy(ip, IP_ADDR, 4);

    printf("%u.%u.%u.%u\n", ip[0], ip[1], ip[2], ip[3]);

    return 0;
}

示例输出

169.254.0.3

关于c - 如何从定义初始化 char[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21709872/

相关文章:

java - 在线性 (O(N)) 时间内对数组进行排序

java - 将整数添加到 int 数组

c - 如何使 readLine() 超时

c++ - 如何从表示 usec 时间的 32 位 int 转换为表示时间的 32 位 int(以秒为单位的二进制分数)?

C - 在 999 以上加小数位和四舍五入

C 文件中的字符数

关于 C 中的短数据类型格式说明符的困惑

python - 如何在Python中存储非常大的数字数组?

javascript - 如何在Javascript中显示带有字符索引的数组元素?

arrays - c 函数是否可以同时接受 double 和 long double 参数?