|
|
  |
начальная инициализация массива |
|
|
|
May 22 2015, 10:03
|

Местный
  
Группа: Участник
Сообщений: 329
Регистрация: 23-04-14
Пользователь №: 81 502

|
Цитата(Метценгерштейн @ May 22 2015, 10:15)  uint8_t tst_mass [1] = {(|= BIT_5)};
как что-то подобное делать? Т.е. чтобы при обращении к данному элементу, происходило или с каким-то числом? Когда буду в ф-ии вызывать данный элемент, он должен не полностью переписать элемент массива, а только бит в этом элементе. Вы можете сформулировать требование простыми и понятными словами ?. А то мало того, что полная дислексия, так еще и на С. это работает, но непонятно, надо ли это. uint8 arr[2] = {(1<<3), (1<<5)};
|
|
|
|
|
May 22 2015, 11:36
|
Профессионал
    
Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079

|
есть массив 3-х уровневый. Код const uint8_t posdigits[6][10][2 * 7] = { { // POS_0 { }, // 0 { }, // 1 { }, // 2 { }, // 3 { }, // 4 { }, // 5 { }, // 6 { }, // 7 { }, // 8 { }, // 9 }, мне надо его заполнить, да так, что последний элемент массива - самые внутренние вложенные скобки- элемент 0- адрес элемента массива, элемент 1- значение. Элемент 2- адрес, 3- значение. например, так {1, 2, 1, 4... }, // 0 т.е. я хочу уже в обрабатываемой ф-ии вызывать элементы массива. И видим, что в номер элемента 1 я сначала пишу 2, потом, вызвав еще раз, в тот же элемент 1 пишу 4. Но мне надо, чтобы не 4, а или 4. Или где-то и 4. Вот как соорудить это? Код const uint8_t tst_mass [2][2] = { { 0, BIT_2 }, // 0 { 0, BIT_3 }, // 1 }; вот так, но BIT_2 сделать ИЛИ или &
|
|
|
|
|
Jun 2 2015, 12:25
|
self made
   
Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795

|
+1. Вот это предложение можно как-то переписать, чтобы парсер русского языка на нем не спотыкался? Цитата Т.е. чтобы при обращении к данному элементу, происходило или с каким-то числом?
|
|
|
|
|
Jun 3 2015, 08:50
|
Знающий
   
Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390

|
Цитата(ar__systems @ Jun 2 2015, 15:25)  +1.
Вот это предложение можно как-то переписать, чтобы парсер русского языка на нем не спотыкался? вместо "или" нужно читать "ИЛИ" ) Цитата(Метценгерштейн @ May 22 2015, 12:15)  uint8_t tst_mass [1] = {(|= BIT_5)};
как что-то подобное делать? Т.е. чтобы при обращении к данному элементу, происходило или с каким-то числом? Когда буду в ф-ии вызывать данный элемент, он должен не полностью переписать элемент массива, а только бит в этом элементе. Например так: Код struct proc { int param; int (*do_)(int arg, struct proc* proc ); };
int do_or(int arg, struct proc* proc) { return arg | proc->param; }
int do_and(int arg, struct proc* proc) { return arg & proc->param; }
int do_proc(int arg, struct proc* proc) { return proc->do_(arg, proc); }
struct proc procs[]={ { .param = (1<<5) , do_or }, // 0 { .param = (1<<7) , do_or }, // 1 { .param = (1<<31) , do_and }, // 2 };
... do_proc(0x12, &procs[1]); // установка бита 7 ...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|