[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [CPROG] Andre mystiske ting med den nye c



"Søren H. Sørensen" <sslug@sslug> skrev den 03-Feb-01:

> Det er såmen kun en warning, og jeg ville finde den på sin plads fra
> c++ compileren, men ikke fra rå c. Jeg kunne da bare kalde den int,
> men så bør jeg også huske at lave en exit med en kode alle
> steder.... Jeg har bare brugt void main(...) i mange år, når jeg
> ikke skulle bruge en exit-kode til andet. 13 år med c giver sikkert
> dumme vaner..........

Som jeg skrev før: void main() er, og har altid været, forkert. gcc er
vel begyndt at give warning om det fordi mange åbenbart har svært ved
at forstå denne simple regel.

I den nye C99 standard er der til gengæld (som i C++) implicit
returnering af 0 hvis ikke dit program selv returnerer noget - så nu
skal du ikke bekymre dig om exit-koder længere; bare brug int.


Denne regel om automatisk at returnere 0 gælder kun for main, så

int f() { /* ingen return */ }

er stadig noget rod.


> Mads Bondo Dydensborg wrote:
> > 
> > Uden at vide for meget om det, mener jeg at det er i 1999 revisionen af C,
> > at det blev et krav, at alle typer skulle angives. Det med at noget uden
> > typer har typen int, er således blevet droppet.

Det foresvæver også mig; men jeg tror ikke, det er relevant i denne
sammenhæng. Problemet er vist "void main", ikke "implicit int".


> > For du en warning eller en fejl? Jeg ville have troet at man med -Wall
> > ville have fået warning om dette i årevis?

-Wall slår i øvrigt, modsat den populære opfattelse (uden at sige
noget om Mads'), ikke alle warnings til, men blot et udvalg, som gcc
udviklerene finder er et passende minimum.

-- 
Regards, Anders


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 20:08 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *