Article View: nl.comp.programmeren
Article #237Re: Lijnen tellen van een project
From: Sjoerd A. Schreuder
Date: Tue, 01 Feb 2005 23:38
Date: Tue, 01 Feb 2005 23:38
45 lines
3391 bytes
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-mailReferences:
<%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