Article View: be.comp.programming
Article #1509Re: Printf: vaste lengte strings en ints?
From: moi
Date: Wed, 02 Mar 2005 23:21
Date: Wed, 02 Mar 2005 23:21
56 lines
3563 bytes
3563 bytes
Dr.Ruud wrote:
> Wat moi schreef, bleek het
> begin van iets moois; kijk zelf maar:
>
>>Dr.Ruud:
>>
>
>>>Het had ons allemaal heel wat exploits kunnen schelen.
>
>
>>Exploits wegens 32->64 bits "migratie" ?
>
>
> Er waren ooit al andere problemen, zoals
> printf("value of 32768 is %d\n", 32768);
>
Je bedoelt: op een platform waar een int 16 bits is ?
(trouwens ook hier bewijst casten naar int zijn zinloosheid)
BTW speelt nog wat anders mee: "silent promotion to int" van
functieargumenten.
> OK, maar OP vroeg om een oplossing bij %d, en er mocht afgekapt worden.
>
Ja, maar we zijn nu toch al bijna off-topic.
> Er zijn, zoals gemeld, genoeg manieren om de buffer lang genoeg te laten
> zijn, dus dan heb je die cast helemaal niet nodig, en hoef/mag/moet je
> 'm dus ook niet gebruiken.
>
> En printf() is meer iets van de vorige eeuw. Die slechte relatie
> tussen wat er op de stack wordt gezet (de argumenten) en wat er
> weer wordt afgehaald (afhankelijk van de tekst die in de format-
> string staat) gaat tegen alle elegantie in. Zelfs late-binding
> is minder onfris.
>
Het is idd een vunzige functie. (en hij wordt er niet mooier op)
Heel lastig, hoe de mapping van binaire naar humaan-leesbare
reprensentatie in een formaat-string wordt samengeperst, en tussen de
bedrijven door ook nog even assumpties over types en sizes worden
gedaan. Aan de andere kant is het weer prakties om alles in een
compacte representatie (de formatstring) te hebben. Jammer alleen, dat
die toch wel een beetje samenhangt met de de functie-argumenten.
Als het goed is, dan. Trouwens: de hele varargs construktie is, in al
zijn lelijkheid, uiterst gewenst.
Dat fprintf() cs van de vorige eeuw zijn, zou ik niet willen zeggen.
(kwa ontstaansdatum wel, uiteraard ...)
De functionaliteit blijft toch nodig; bij een grondige redesign zouden
er ook weer keuzes gemaakt worden. Die later weer verkeerd kunnen uitpakken.
AvK
Technical Details
Message-ID:
<pKGdnfvnjtP817vfRVnysw@casema.nl>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!nntp.casema.nl!news.casema.nl.POSTED!not-for-mailReferences:
<M5qdnYvpZutbs7nfRVnyjA@scarlet.biz> <d01i4u.14c.1@news.isolution.nl> <CqudnXnc_MjnCbjfRVnyhg@casema.nl> <d050po.130.1@news.isolution.nl> <FMSdnW58LdbOtrvfRVnyvQ@casema.nl> <d05hsg.1bo.1@news.isolution.nl>Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,f962124bbb04ff22 X-Google-Thread: 107324,f962124bbb04ff22 X-Google-Attributes: gidfcea4,gid107324,public X-Google-Language: DUTCH,ASCII-7-bit Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!nntp.casema.nl!news.casema.nl.POSTED!not-for-mail NNTP-Posting-Date: Wed, 02 Mar 2005 17:21:05 -0600 Date: Thu, 03 Mar 2005 00:21:04 +0100 From: moi <avk@localhost> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: be.comp.programming,nl.comp.programmeren Subject: Re: Printf: vaste lengte strings en ints? References: <M5qdnYvpZutbs7nfRVnyjA@scarlet.biz> <d01i4u.14c.1@news.isolution.nl> <CqudnXnc_MjnCbjfRVnyhg@casema.nl> <d050po.130.1@news.isolution.nl> <FMSdnW58LdbOtrvfRVnyvQ@casema.nl> <d05hsg.1bo.1@news.isolution.nl> In-Reply-To: <d05hsg.1bo.1@news.isolution.nl> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: <pKGdnfvnjtP817vfRVnysw@casema.nl> Lines: 57 NNTP-Posting-Host: 83.83.6.100 X-Trace: sv3-jQxfQMaqK2Svbula32oqW4o/3pukIAq/yh8tWJgA3eeb10R3YSlr4Rl13b54STgGXqGtKZ9DHdqJeCx!BImjOAWHFGiExjs2Dm5y+WUqn/r5LF02W0h/aPeNjRKpoCXlm0Dd4ji21RPNcyyDNoI= X-Complaints-To: abuse@casema.nl X-DMCA-Complaints-To: abuse@casema.nl X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.32