我想将我的定义复制到我的var IP:
#define IP_ADDR {169, 254, 0, 3}
struct
{
// ....
char IP[4];
} COM_INFO;
memcpy(COM_INFO.IP, IP_ADDR, 4);
但它不起作用。
答案 0 :(得分:2)
您的define
必须是这样的:
#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
答案 1 :(得分:1)
IP_ADDR
将被粘贴到任何引用的地方(由预处理器)。所以,您可以执行以下操作:
int main(int argc, const char* argv[])
{
// Initialize the COM_INFO structure.
COM_INFO comInfo = {
// ...
IP_ADDR, // {169, 254, 0, 3} will be pasted here
// ...
};
return 0;
}