- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
/*
https://habr.com/ru/post/523688/
Так как мы работаем с макросистемой C/C++, то аналог функций — макрос, этой
абстракцией мы и будем пользоваться. Мы будем передавать идентификатор первого
рекурсивного макроса в следующий рекурсивный макрос, и тот, в свою очередь, по
мере завершения своего исполнения будет передавать поток исполнения в первый
рекурсивный макрос, так называемое продолжение. Нам также понадобиться терминальное
продолжение — ML99_PRIV_REC_STOP — оно будет являться продолжением, поставляющимся
в самый-самый первый рекурсивный макрос, ведь логично, что никуда, кроме как
закончить исполнение программы на данном месте, нам перепрыгивать не нужно. Жилка
двигателя рекурсии — это цепочка из макросов-раскрывателей следующего вида:
*/
#define ML99_PRIV_REC_0(choice, ...) ML99_PRIV_REC_NEXT(1, choice)(__VA_ARGS__)
#define ML99_PRIV_REC_1(choice, ...) ML99_PRIV_REC_NEXT(2, choice)(__VA_ARGS__)
#define ML99_PRIV_REC_2(choice, ...) ML99_PRIV_REC_NEXT(3, choice)(__VA_ARGS__)
#define ML99_PRIV_REC_3(choice, ...) ML99_PRIV_REC_NEXT(4, choice)(__VA_ARGS__)
#define ML99_PRIV_REC_4(choice, ...) ML99_PRIV_REC_NEXT(5, choice)(__VA_ARGS__)
#define ML99_PRIV_REC_5(choice, ...) ML99_PRIV_REC_NEXT(6, choice)(__VA_ARGS__)
#define ML99_PRIV_REC_6(choice, ...) ML99_PRIV_REC_NEXT(7, choice)(__VA_ARGS__)
#define ML99_PRIV_REC_7(choice, ...) ML99_PRIV_REC_NEXT(8, choice)(__VA_ARGS__)
#define ML99_PRIV_REC_8(choice, ...) ML99_PRIV_REC_NEXT(9, choice)(__VA_ARGS__)
#define ML99_PRIV_REC_9(choice, ...) ML99_PRIV_REC_NEXT(10, choice)(__VA_ARGS__)
//...
//И так до 1023:
j123123 03.07.2021 02:57 # 0
bormand 03.07.2021 09:39 # +2
MAKAKA 03.07.2021 03:05 # 0
какой ))))))))))))))))
bormand 03.07.2021 09:12 # 0
bormand 03.07.2021 09:59 # 0
PolinaAksenova 03.07.2021 10:35 # +1
bormand 03.07.2021 10:40 # 0
rom4ik 03.07.2021 17:23 # −1
ASD_77 03.07.2021 19:44 # 0
j123123 04.07.2021 03:36 # 0
MAKAKA 04.07.2021 03:37 # +2
какая рекурсия ))
HEu3BECTHblu_nemyx 05.07.2021 16:18 # +1