ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Среда
6 июля
1163679 Топик полностью
VladislavS. (13.01.2022 00:07, просмотров: 246) ответил Mahagam на а так читабельнее:
Куда я попал.... :( Сами посмотрите как этот макрос будет работать в таком месте? 
if( /* чё-то тут */) handred(NOP); else ten(NOP);

--------------------------------------

А 73 нопа как будете делать?

--------------------------------------

Давайте слегка усложним пример

template <unsigned N, typename F, auto... args>
inline void Repeat(F f)
{
  if constexpr (N > 0)
  {
    f(args...);
    Repeat<N - 1, args...>(f);
  }
}

Сюда уже вместо NOP можно любую функцию с аргументами передавать или ту же лямбду.

 Repeat<7>([]{ PA1::set(); PA1::clear(); });
0x20000a7a 4F F0 90 41          mov.w r1, #1207959552	; 0x48000000 
0x20000a7e 02 23                movs r3, #2 
0x20000a80 8B 61                str r3, [r1, #24] 
0x20000a82 4B 83                strh r3, [r1, #26] 
0x20000a84 8B 61                str r3, [r1, #24] 
0x20000a86 4B 83                strh r3, [r1, #26] 
0x20000a88 8B 61                str r3, [r1, #24] 
0x20000a8a 4B 83                strh r3, [r1, #26] 
0x20000a8c 8B 61                str r3, [r1, #24] 
0x20000a8e 4B 83                strh r3, [r1, #26] 
0x20000a90 8B 61                str r3, [r1, #24] 
0x20000a92 4B 83                strh r3, [r1, #26] 
0x20000a94 8B 61                str r3, [r1, #24] 
0x20000a96 4B 83                strh r3, [r1, #26] 
0x20000a98 8B 61                str r3, [r1, #24] 
0x20000a9a 4B 83                strh r3, [r1, #26] 
Ответы