我正在寻找一种解决方案,以将数组与定义和变量中的值连接在一起。我已经尝试过像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 - 使用定义和变量连接数组-C语言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47230608/

10-12 14:53