🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: nl.comp.programmeren
Article #237

Re: Lijnen tellen van een project

#237
From: Sjoerd A. Schreuder
Date: Tue, 01 Feb 2005 23:38
45 lines
3391 bytes
Stef wrote:
> In nl.comp.programmeren,
> Sjoerd A. Schreuder <sa_schreuder@wanadoo.nl> wrote:
> 
>>Ik ken C99 niet goed genoeg, maar ik neem aan dat:
>>  mytype_t *x = malloc(sizeof(mytype_t));
>>nog steeds mogelijk is (anders te veel code oncompileerbaar).
>>Maar dat betekent dat het returntype van malloc(), (void*) of (char*)
>>of wat dan ook, zonder cast naar (mytype_t*) moet zijn om te zetten.
> 
> Ja, de cast is in C niet noodzakelijk en wordt o.h.a. afgeraden.
> Belangrijkste argument is dat een vergeten "#include <stdlib.h>" met de
> cast geen foutmelding geeft en zonder de cast juist wel. Doorzoek anders
> comp.lang.c eens op "never cast the return value of malloc".

Zinnig argument. Ik zal het onthouden als ik ooit in C moet programmeren.

Mocht ik ooit in C gaan programmeren, dan gebruik ik wel een compiler
die een warning geeft als ik een functie gebruik zonder voorafgaande
declaratie. Ik weet dat C dat niet vereist(te), maar persoonlijk
beschouw ik het wel als een bug.

>>Als mijn aanname over C juist is, dan zit er dus wel degelijk een
>>groot verschil tussen C en C++ op dit punt.
> 
> Klopt en C++ code zit dan ook vol met die ergerlijke casts.

Ik weet niet wat voor C++ code jij gemiddeld onder ogen krijgt, maar
een goed opgezet C++ programma heeft geen of slechts enkele casts nodig.

In C++ code die ik van C++ experts zie, zitten ook geen casts.
In C++ code die ik schrijf, zitten ook geen casts.

Ik ben benieuwd wat voor casts jij tegenkomt. Het bovenstaande probleem
rond malloc heb je niet in C++, want in C++ gebruik je geen malloc
maar new of std::vector<>/std::list<>/...

 >  En ook C
> code die door een C++ compiler gehaald wordt.

In zulke programma's zullen inderdaad casts moeten zitten, b.v. bij
elke malloc() (hetgeen niet erg is, omdat de "#include <stdlib.h>"
in C++ verplicht is als je malloc() wilt gebruiken).

Sjoerd
Technical Details
Message-ID: <42001301$0$72797$1b2cd167@news.wanadoo.nl>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!feeder.enertel.nl!nntpfeed-01.ops.asmr-01.energis-idc.net!news2.euro.net!postnews1.euro.net!news.wanadoo.nl!not-for-mail
References: <%XJId.2415$OZ2.252982@phobos.telenet-ops.be> <ct9k2f.4js.1@news.isolution.nl> <IAzIFp.1qJ@vulcan.xs4all.nl> <41fa3d30$0$96924$abc4f4c3@news.wanadoo.nl> <IB6JF0.2FL@vulcan.xs4all.nl> <y6CdnR8nao-u5GPcRVnyvA@casema.nl> <41fedd9a$0$30144$abc4f4c3@news.wanadoo.nl> <4e056$41ff477c$54f63171$2540@publishnet.news-service.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: 107324,ab34a8b99e320381
X-Google-Thread: fcea4,ab34a8b99e320381
X-Google-Attributes: gid107324,gidfcea4,public
X-Google-Language: DUTCH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!feeder.enertel.nl!nntpfeed-01.ops.asmr-01.energis-idc.net!news2.euro.net!postnews1.euro.net!news.wanadoo.nl!not-for-mail
Date: Wed, 02 Feb 2005 00:38:40 +0100
From: "Sjoerd A. Schreuder" <sa_schreuder@wanadoo.nl>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
X-Accept-Language: en-us, en
MIME-Version: 1.0
Newsgroups: nl.comp.programmeren,be.comp.programming
Subject: Re: Lijnen tellen van een project
References: <%XJId.2415$OZ2.252982@phobos.telenet-ops.be> <ct9k2f.4js.1@news.isolution.nl> <IAzIFp.1qJ@vulcan.xs4all.nl> <41fa3d30$0$96924$abc4f4c3@news.wanadoo.nl> <IB6JF0.2FL@vulcan.xs4all.nl> <y6CdnR8nao-u5GPcRVnyvA@casema.nl> <41fedd9a$0$30144$abc4f4c3@news.wanadoo.nl> <4e056$41ff477c$54f63171$2540@publishnet.news-service.com>
In-Reply-To: <4e056$41ff477c$54f63171$2540@publishnet.news-service.com>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 46
Message-ID: <42001301$0$72797$1b2cd167@news.wanadoo.nl>
Organization: Wanadoo
NNTP-Posting-Date: 01 Feb 2005 23:38:42 GMT
NNTP-Posting-Host: c3eea0100.cable.wanadoo.nl
X-Trace: 1107301122 digger.euronet.nl 72797 62.234.1.0:1407
X-Complaints-To: abuse@wanadoo.nl