+1004
- 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
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
// shit.h :
#if END_SHIT == 0
bagor++;
#if BIT0 == 0
#undef BIT0
#define BIT0 1
#else
#undef BIT0
#define BIT0 0
#if BIT1 == 0
#undef BIT1
#define BIT1 1
#else
#undef BIT1
#define BIT1 0
#if BIT2 == 0
#undef BIT2
#define BIT2 1
#else
#undef BIT0
#undef BIT1
#undef BIT2
#define END_SHIT 1
#endif
#endif
#endif
#include "shit.h"
#endif
//shit.c
#include <stdio.h>
int main(void) {
int bagor = 0;
#define BIT0 0
#define BIT1 0
#define BIT2 0
#include "shit.h"
printf("bagor = %i\n", bagor);
return 0;
}
http://govnokod.ru/20947#comment348047
CHayT 3 часа назад # 0
> нет ни циклов, ни рекурсий
Можно, думаю, файлы сами в себя инклудить, чем не рекурсия. Не очень понятно, что с этим делать, правда.
-----
Но ведь совершенно очевидно, что с этим можно делать. Очередной шедевр макроговна
Запостил:
j123123,
25 Августа 2016
Надо факториал накорябать. А программу конфигурировать флагами препроцессора, на этапе конпеляции.
а если это еще попробовать c boost PP скомбинировать.
PS гцц:
Да, подкинь им эту идею, чтобы они подобным макроговном пробили очередное дно
Эмм, и как этим сделать конечное число повторов чего-либо?
Инклудить файл сам в себя в бесконечном цикле и прибивать препроцессор по таймауту для генерации исходников? Сурово! Надо только на этапе компиляции еще узнать модель и частоту процессора, чтоб в нужное время прибить, а то еще чего лишнего нагеренирует, или недогенерирует.
>Или генерация бесконечных исходников - безумно ценная фича, как гомоиконы?
Приведенный мной говнокод генерирует как раз конечный исходник
Вообще да, но гоняют его обычно на C/C++/Obj-C/Obj-C++
Ну и еще он вроде используется применительно к исходникам на ассемблере GAS. Больше не могу ничего такого вспомнить, если говорить о дефолтном применении
хохохо, представляю какой сейчас был бы бугурт!
http://govnokod.ru/13492#comment189861
m4 всё-таки универсальнее. В нём хоть какие-то вычисления можно делать, в отличие от cpp.
В m4 хотя бы есть инкремент и декремент, а в cpp приходится строить монстра, похожего на компьютер из Майнкрафта.
просто m4 сам по себе ломает мозг
может быть в 1979м году он и был няшечкой, но сейчас на таком не программируют
Раньше препроцессор был маст хев всегда и везде. А теперь нет.
Новые ЯПы без него как-то обходятся. Чому так?
http://govnokod.ru/14175#comment203408
Или в ней что-то ещё интересное есть помимо cog.out?
Сразу захотелось использовать для, скажем, рассказа - для кастомизируемости и создания нескольких версий.
где