69 tecken kort UTF-8-kodare i C

Per von Zweigbergk pvz at kth.se
Sat Jun 30 15:38:36 CEST 2007


30 jun 2007 kl. 14.11 skrev Didrik Madheden:

> On 30/06/07, Per von Zweigbergk <pvz at pvz.pp.se> wrote:
>> Jag slogs för någon timme eller två sedan av en tanke. En riktigt
>> kort version av en kodare från ISO-8859-1 till UTF-8.
>>
>> main(c){for(;c=~getchar();putchar(~c))c&128?:putchar(c>>6^63,c|=64);}
> En sak jag inte fattar: Varför c|=64 med tilldelning? c|64 border väl
> funka lika bra då c ändå skrivs över i nästa cykel?
>
> /Didrik Madheden

Andra argumentet används inte av putchar, putchar läser endast första  
argumentet. c|=64 används endast för sin sidoeffekt.

Dessutom körs ju putchar(~c) efter det också som tredje termen i for 
(;;)-satsen. :-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.stacken.kth.se/pipermail/stacken/attachments/20070630/8cc7706a/attachment-0001.html


More information about the Stacken mailing list