Creating a static char array inside struct from dynamic char array using initializer in C
I am making a macro which takes a char pointer array and uses it create a fixed size static char array inside a struct using a struct initializer. Right now I have this code which works as intended:
typedef struct {
// other data omitted for simplicity
char id[6];
} sid;
#define SID_STRING(x) ((sid) { .id={((char *)x)[0], ((char *)x)[1], ((char *)x)[2], ((char *)x)[3], ((char *)x)[4], ((char *)x)[5]} })
This code is fine, but I was wondering if there was a more elegant way to copy the data into the array within the struct initializer.
Thanks.