Static Struct Initialization
struct student {
int roll;
int class;
char name[50];
};
student mark = {
.name = "Mark",
.class = 10,
.roll = 1038
};
GCC: 6.26 Designated Initializers
GCC 4.4.1: 5.23 Designated Initializers
C: Structure Initialization (Advanced)
Static Array Initialization
#define ADDRESS1 0x01
#define ADDRESS2 0x02
#define ADDRESS3 0x03
#define ADDRESS4 0x04
const static uint32_t address_map[] = {
[0] = ADDRESS1,
[1] = ADDRESS2,
[2] = ADDRESS3,
[3] = ADDRESS4
};
#define REGISTER_MAP(name, reg) [name] = reg
#define NAME1 0x03
#define NAME2 0x01
#define NAME3 0x02
#define NAME4 0x04
#define ADDRESS1 0x01
#define ADDRESS2 0x02
#define ADDRESS3 0x03
#define ADDRESS4 0x04
const static uint32_t address_map[] = {
REGISTER_MAP(NAME1, ADDRESS1),
REGISTER_MAP(NAME2, ADDRESS2),
REGISTER_MAP(NAME3, ADDRESS3),
REGISTER_MAP(NAME4, ADDRESS4)
};
How to initialize an array in C
Initialization of arrays
c: initializing arrays