История изменений
Исправление SZT, (текущая версия) :
Нужно по номеру строки получать числа из колонок
Делаешь массив
uint8_t arr[][2] ={{3,2}, {4,3}, {4,2}, {5,3}, {6,3}};
наоборот: по заданной паре найти номер строки.
Надо сцепить пары таким образом, чтобы одно целое число было. Например, в случае uint8_t у нас каждое число занимает 1 байт. Пара соотвественно 2 байт. Ну, очевидно
size_t map[] = {
[(3<<8) | 2] = 0, [(4<<8) | 3] = 1,
[(4<<8) | 2] = 2, [(5<<8) | 3] = 3,
[(6<<8) | 3] = 4
}
И таким образом, если сделать обращение к массиву map[(4<<8) | 2]
то там будет индекс массива для arr[][2]
Только первая колонка отсуствует, и там вся индексация будет начинаться с 0 а не с 1, но это думаю не особо критично
Исправление SZT, :
Нужно по номеру строки получать числа из колонок
Делаешь массив
uint8_t arr[][2] ={{3,2}, {4,3}, {4,2}, {5,3}, {6,3}};
наоборот: по заданной паре найти номер строки.
Надо сцепить пары таким образом, чтобы одно целое число было. Например, в случае uint8_t у нас каждое число занимает 1 байт. Пара соотвественно 2 байт. Ну, очевидно
size_t map[] = {
[(3<<8) | 2] = 0, [(4<<8) | 3] = 1,
[(4<<8) | 2] = 2, [(5<<8) | 3] = 3,
[(6<<8) | 3] = 4
}
И таким образом, если сделать обращение к массиву map[(4<<8) | 2]
то там будет индекс массива из arr[][2]
Только первая колонка отсуствует, и там вся индексация будет начинаться с 0 а не с 1, но это думаю не особо критично
Исходная версия SZT, :
Нужно по номеру строки получать числа из колонок
Делаешь массив
uint8_t arr[][2] ={{3,2}, {4,3}, {4,2}, {5,3}, {6,3}};
Первая колонка -- вообще незачем ее хранить.
>наоборот: по заданной паре найти номер строки.
Надо сцепить пары таким образом, чтобы одно целое число было. Например, в случае uint8_t у нас каждое число занимает 1 байт. Пара соотвественно 2 байт. Ну, очевидно
size_t map[] = {
[(3<<8) | 2] = 0, [(4<<8) | 3] = 1,
[(4<<8) | 2] = 2, [(5<<8) | 3] = 3,
[(6<<8) | 3] = 4
}
см. https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Designated-Inits.html
И таким образом, если сделать обращение к массиву map[(4<<8) | 2]
то там будет индекс массива из arr[][2]
Только первая колонка отсуствует, и там вся индексация будет начинаться с 0 а не с 1, но это думаю не особо критично