使用定义和变量连接数组 - C 语言

标签 c

我正在寻找一种解决方案,将定义和变量的值连接到数组中。我已经尝试过像这样使用 memcpy 但它不起作用:

#define ADDRESS   {0x00, 0x00, 0x00, 0x00, 0x00, 0x45}
#define SIGNATURE {0xC6, 0x54, 0x2D}
uint8_t packetCounter = 0;
uint8_t RadioData[2]={'2','1'};

uint8_t Packet = sizeof(uint8_t);

memcpy(Packet, ADDRESS, sizeof(ADDRESS));
memcpy(Packet, SIGNATURE, sizeof(SIGNATURE));
memcpy(Packet, packetCounter, sizeof(packetCounter));
memcpy(Packet, data, sizeof(data));

这段代码的目标是拥有一个具有这些值的数组:ADDRESS+SIGNATURE+packetCounter+data。我还想在每个变量之间添加“_”。

你有什么解决办法吗? 谢谢

最佳答案

尚不完全清楚你想要什么,但也许是这样的?

#include <stdint.h>

#define ADDRESS 0x00, 0x00, 0x00, 0x00, 0x00, 0x45
#define SIGNATURE 0xC6, 0x54, 0x2D

void Some_Function(void) {
    uint8_t packetCounter = 0;
    uint8_t RadioData[2]={'2','1'};

    uint8_t Packet[] = {ADDRESS, SIGNATURE, packetCounter, RadioData[0], RadioData[1]};
}

关于使用定义和变量连接数组 - C 语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47230608/

相关文章:

c - 字符串和子字符串

c++ - 当 NUL 字符定义为字符串的一部分时,为什么 strlen() 不计算终止 NUL 字符的字节数?

c - 如何在 Vim 中高亮显示 printf、scanf?

c - 如何修复 'request for member in something not a structure or union'错误?

c - switch() 函数中区分整数和特殊字符

c - 返回值3221225725,可能缓冲区溢出?

c - 在 C 中将算术表达式应用于用户提供的 2 个二进制数的最佳方法是什么?

c - 一次读取一个数字,检查是否有重复项

c - 枚举数中 'four' 的值是多少?

c - C 语言编程中的 execl