I am trying to make a struct
that could hold 208 bytes bits. My intentions are using every 3 bits of variables to store 68 values each between 0 and 4.
I currently have this, but am getting quite a few errors:
typedef struct {
uint64_t _1vr = 0;
uint64_t _2vr = 0;
uint64_t _3vr = 0;
uint16_t _4vr = 0;
} TEST;
const TEST test_bits = {
._1vr = (BVUS_ZAC1 << 0) | (BVUS_ZAC2 << 3) | (BVUS_VISOKO << 6) | (BVUS_NIZKO2 << 9) | (BVUS_VISOKO << 12) |
(BVUS_NIZKO1 << 15) | (BVUS_VISOKO << 18) | (BVUS_NIZKO1 << 21) | (BVUS_VISOKO << 24) | (BVUS_NIZKO1 << 27) |
(BVUS_VISOKO << 30) | (BVUS_NIZKO1 << 33) | (BVUS_VISOKO << 36) | (BVUS_NIZKO1 << 39) | (BVUS_VISOKO << 42) |
(BVUS_NIZKO1 << 45) | (BVUS_VISOKO << 48) | (BVUS_NIZKO1 << 51) | (BVUS_VISOKO << 54) | (BVUS_NIZKO1 << 57) |
(BVUS_VISOKO << 60),
._2vr = (BVUS_NIZKO2 << 0) | (BVUS_VISOKO << 3) | (BVUS_NIZKO2 << 6) | (BVUS_VISOKO << 9) | (BVUS_NIZKO2 << 12) |
(BVUS_VISOKO << 15) | (BVUS_NIZKO2 << 18) | (BVUS_VISOKO << 21) | (BVUS_NIZKO2 << 24) | (BVUS_VISOKO << 27) |
(BVUS_NIZKO2 << 30) | (BVUS_VISOKO << 33) | (BVUS_NIZKO2 << 36) | (BVUS_VISOKO << 39) | (BVUS_NIZKO1 << 42) |
(BVUS_VISOKO << 45) | (BVUS_NIZKO1 << 48) | (BVUS_VISOKO << 51) | (BVUS_NIZKO1 << 54) | (BVUS_VISOKO << 57) |
(BVUS_NIZKO1 << 60),
._3vr = (BVUS_VISOKO << 0) | (BVUS_NIZKO1 << 3) | (BVUS_VISOKO << 6) | (BVUS_NIZKO1 << 9) | (BVUS_VISOKO << 12) |
(BVUS_NIZKO1 << 15) | (BVUS_VISOKO << 18) | (BVUS_NIZKO1 << 21) | (BVUS_VISOKO << 24) | (BVUS_NIZKO2 << 27) |
(BVUS_VISOKO << 30) | (BVUS_NIZKO2 << 33) | (BVUS_VISOKO << 36) | (BVUS_NIZKO2 << 39) | (BVUS_VISOKO << 42) |
(BVUS_NIZKO2 << 45) | (BVUS_VISOKO << 48) | (BVUS_NIZKO2 << 51) | (BVUS_VISOKO << 54) | (BVUS_NIZKO2 << 57) |
(BVUS_VISOKO << 60),
._4vr = (BVUS_NIZKO2 << 0) | (BVUS_VISOKO << 3) | (BVUS_NIZKO2 << 6) | (BVUS_VISOKO << 9) | (BVUS_NIZKO1 << 12)
};
- 4x: Warning 19 (near initialization for 'test_bits') [enabled by default]
- 4x: Warning 4 excess elements in struct initializer [enabled by default]
- Error 1 expected ':', ',', ';', '}' or '__attribute__' before '=' token
- Whole bunch of: Warning 51 left shift count >= width of type [enabled by default]
- Error 2 unknown field '_1vr' specified in initializer
- Error 20 unknown field '_2vr' specified in initializer
- Error 38 unknown field '_3vr' specified in initializer
- Error 56 unknown field '_4vr' specified in initializer
These variables are defined in global scope.
I have no clue whats going on. To be honest I dont see anything wrong (of course I am wrong but...)
EDIT:
Doing exactly what WChargin said I still cant get rid of next errors:
- Error 12 (near initialization for 'test_bits._1vr')
- Error 24 (near initialization for 'test_bits._2vr')
- Error 36 (near initialization for 'test_bits._3vr')
- Error 11 initializer element is not constant
- Warning 1 left shift count >= width of type [enabled by default]
EDIT2:
I am doing this on a 8-bit architecture.