Ahoj Štěpáne, jednak je ten výraz čitelný, jednak ho lze snadno zjednodušit a dále zčitelnit, a v praxi člověk dbající na čitelnost použije spíš:
typedef void(*prazdna_funkce)(); prazdna_funkce(NULL)(); případně takto: static_cast<void(*)()>(NULL)(); Nicméně je to výraz, a výraz může dosahovat obstojné složitosti i v Pythonu a jiných jazycích. Navíc je to výraz, jehož hlavním principem je přetypování a zachování správného statického typu, což je věc, kterou srovnávat s Pythonem s dynamickým typováním (za což Python platí pomalostí) je poněkud pasé. A navíc je to výraz neužitečný, k ničemu, je vhodný jenom k tomu, abyste uměle vyrobili chybu v programu a operační systém Vás odstřelil - nic jiného neudělá. Zatímco tu kritizuji konstrukce Pythonu, a Ty jsou opravdu čím dál více IMHO vymýšleny k nečitelnosti. Čemuž se nedivím, Python je one man show, a když si key-man poněkud začne hrát, tak Python má smůlu. A nezlobte se, základní konstrukce typu podmíněné přiřazení, select a další jsou v C (a mnoha dalších jazycích) podstatně čitelnější, než v Pythonu. Ale možná je to tím, že s Rossumem opravdu nesouzním - například mi hlava nebere, proč Rossum nemá nic proti else po cyklu (v tom je jedinečný, žádný jiný programovací jazyk neshledal tuto konstrukci užitečnou a nezbytnou), zatímco proti velmi užitečné konstrukci select (která je v obrovské spoustě jazyků, vlastně v naprosté většině) se brání jako zbytečné. Miloslav Ponkrác Stepan napsal(a): > > Ahoj Supermane, > > ohledne necitelnosti Pythonu a citelnosti C; urcite znas: > > (* (void(*)( ) ) 0) ( ); > > autor A. Koenig, ktery k tomu rika: “Takovyhle vyrazy jsou OK, nebojte > se jich.” > > WTF?! > > Stepan > _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python