Na Ábíčku rozebírali tento MS kód
https://github.com/Microsoft/ProcDump-for-Linux/blob/master/src/Process.c
Nejsem profi programator, ale ta metoda copy-paste b(L)ije do očí. Jestli tam dělaj takovýhle machři, tak už se vážně ničemu nedivim. Co nám k tomu poví Lael? :-))
Tak to všechno vysvětluje, protože normální programátor udělá z opakující se konstrukce funkci nebo objekt, aby si pak nemusel pamatovat všechny ty copy-paste instance, které by jinak bylo třeba měnit každou zvlášť, což vždy podporuje zanášení chyb (stačí jednu vynechat)...
No a když se pak ještě k tomu propustí většina testerů, tak je na Windows 10 zaděláno.
No nevím, ale když jsem se podíval do toho kódu, tak se to až tak moc, příjemně, neopakuje. Přesněji, to co se opakuje je až moc volné. Nebezpečně.
Pokud se to udělá takto blbuvzdorně, projde to i dobrou typovou kontrolou, nezblbne se int/unsigned, nezblbne se 64/32 (dle toho, jak jsou zrovna položky ProcessStat definovány), není třeba mít pole funkcí (ať už pointery ať už výběr, která konverzní token funkce se má použít) a hlídat typ výstupu těch konverzních token funkcí (pokud by typ nesedl a dělala se automatická konverze 32->64), ... ... to vše při tomto rozvláčném zápisu udělá překladač natvrdo v compile time, my bychom si to museli hlídat ručně (navíc dynamicky v runtime).
Tolik řádků izolepy, navíc sesypané pohromadě v jednom monstróznim repozitáři bez submodules/externals...