↓ Skip to main content

teach an old C new tricks

·145 words

Ik kom net op dit artikel over Coroutines in C en het zit boordevol met lekkere low-level programmeer-juweeltjes. Dat alles om iets ontzettend handigs te implementeren: coroutines die ik het beste ken als Python-generators (niet te verwarren).

Van een geniale onduidelijkheid is bijvoorbeeld Duff’s device hieronder:

switch (count % 8) { case 0: do { *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; } while ((count -= 8) > 0); }

Daarna wordt het alleen maar erger. Uiteindelijk volgen er een bijzonder vies stel macro’s die er met

GOTO

’s en statische variabelen voor zorgen dat je na

return

door kunt gaan in die functie waar je was gebleven.

Ooit iemand C ouderwets horen noemen?

Alper Cugun
Author
Alper Cugun

Related

Datavis propz!

Ik heb gisteren voor het eerst in tijden een leuk college gehad. Het was interessant, moeilijk en het ging in een lekker hoog tempo waardoor het praktisch onmogelijk was om in slaap te vallen.