Op donderdag 14 november 2024 10:56:24 schreef blurp:
putchar daarintegen gebruikt er maar een.
Ja, die bedoel ik! Sorry. foutje bedankt. 
Op donderdag 14 november 2024 14:30:16 schreef Hensz:
[...]
Ik verbaas me al meer dan 40 jaar over al die mensen die denken dat als je minder tekst gebruikt voor je source-code je dan ook compactere object-code krijgt.
En ik verbaas me al jaren over mensen die denken dat als je het langer opschrijft het duidelijker wordt.
Ik ben er op tegen om "teller" te schrijven. Iedereen weet dat de variabele i voor "actueel gebruik als teller in een loop" bedoeld is. Dan "teller" schrijven maakt de boel alleen maar onnodig langer en onoverzichtelijker.
Die "printf" binnen de ? : constructie is zodanig ongebruikelijk dat ik die in 35 jaar C nog niet ben tegengekomen. Dat is dus een constructie waar ik even voor moest stoppen, wat nieuws moest leren constateren dat dit ook werkt en dan pas door. Dat is NIET de bedoeling voor "duidelijke code".
Van mij mag je
for (i=7;i>=0;i--) printf ("%c", ((x>>i)&1)?'1':'0');
schrijven als je dat duidelijker vind dan de '0'+ ... constructie.
Over optimalisatie: Ik doe het zeker niet zo korter om efficientere code te krijgen. Het geheel blijft overzichtelijker.
By the way... Ik heb mijn laatste code en de originele code (met een loop er omheen) in m'n compiler gestopt. Beide resulteren in een 13 instructie lange functie. (13 = incl de functie prelude en post-lude) en een 5 instructie lange loop waarbij niet printf ("%c", ...) maar putchar aangeroepen wordt!