Article View: be.comp.programming
Article #1495Re: Printf: vaste lengte strings en ints?
From: moi
Date: Wed, 02 Mar 2005 15:59
Date: Wed, 02 Mar 2005 15:59
71 lines
3209 bytes
3209 bytes
John Bokma wrote:
> moi wrote:
>
>
>>Dr.Ruud wrote:
>>
>
>>>
>>>Nee, maar je zou wel kunnen casten, bijvoorbeeld
>>> (int32) id
>>>want op die manier weet je dat %i maximaal 10 tekens kan opleveren,
>>>zelfs als later 'id' een 64-bits integer zou worden.
>>>
>>
>>Is wel erg paranoide, IMO, om rekening te houden met andere sizes.
>
>
> Nee, zeer zeker niet.
Ben ik met je eens, maar wordt hier IMO op de verkeerde plaats
geintroduceerd.
>
>
>>En onsmakelijk om daar een cast voor te gebruiken.
>>Een int is een int. een "%d" of "%i" verwijst naar een int in de
>>arglist, ongeacht zijn/haar sizeof.
>>
>>Het eenvoudigst, IMHO is om de buffer gewoon groot genoeg te maken:
>
>
> Tja, en dat is? Het duidelijkste is om de afmeting van de buffer te
> baseren op de maximaal mogelijke afmeting.
>
Volgens mij bedoelen we hetzelfde.
Was al correct berekend, ergens: 10+1 voor 32bits, en 19+1 voor 64bits ints.
>>Dat is 19 pos + teken voor een 64bits int, als ik goed geteld hebt.
>
>
> Te veel bugs zijn van de "als ik goed" vorm :-(
>
>
>>Samenvattend:
>>* (over)Alloceren op de stack ("auto") kost vrijwel niks. (je moet het
>> natuurlijk niet in ieder functie doen, en dan duizenden lagen
>> diep.
>>* voor strings is "%20s" nodig om maximaal 20 chars af te beelden.
>
>
> Wat gebeurd er als ik een string van 30 tekens heb?
>
>
Dan wort ie afgekapd. (althans: niet geprind ;-)
>>* voor ints (en floats, in mindere mate) ligt het maximaal benodigde
>> min-of-meer vast.
>
>
> Nee: het ligt vast vzviw.
>
Sorry voor slag-om-de-arm.
is vzvik ook een "als ik goed" vorm ;-?
AvK
Technical Details
Message-ID:
<f5-dnRizsI1nf7jfRVnyrg@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> <Xns960D5B9AC5FAcastleamber@130.133.1.4>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 09:59:54 -0600 Date: Wed, 02 Mar 2005 16:59:54 +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> <Xns960D5B9AC5FAcastleamber@130.133.1.4> In-Reply-To: <Xns960D5B9AC5FAcastleamber@130.133.1.4> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: <f5-dnRizsI1nf7jfRVnyrg@casema.nl> Lines: 71 NNTP-Posting-Host: 83.83.6.100 X-Trace: sv3-tRF2NWJJIiinLaZYZUyQ5eP4yr3oFYj+V2bAs00EtLnEfolOy4WhTwZUIyuzBJwJFVsoLJR/dUkDlhn!4SkRzF3eL32EvWZDNSKJuWjzaBb/eb88kGnBqehyW/QXWNZFUbCKdcJL3ENcN498uao= 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