/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
#ifndef
Fra : Hans L


Dato : 27-08-03 13:02

Hvad er det jeg skriver øverst i en h-fil der opretter en klasse.

Er det ikke noget lignende:

#ifndef _klassenavn
define

Kan i hjælpe mig.

Tak



 
 
Bertel Lund Hansen (27-08-2003)
Kommentar
Fra : Bertel Lund Hansen


Dato : 27-08-03 13:20

Hans L skrev:

>Hvad er det jeg skriver øverst i en h-fil der opretter en klasse.

>Er det ikke noget lignende:

>#ifndef _klassenavn
>define


#ifndef _klassenavn
#define _klassenavn
.... hele molesjasen ...
#endif

Det sikrer at koden kun inkluderes én gang selv om den kaldes 117
gange fra 35 andre moduler.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Kristian Dupont (28-08-2003)
Kommentar
Fra : Kristian Dupont


Dato : 28-08-03 09:07

Hvis du bruger Visual C++ (og muligvis andre compilere), kan du også skrive
#pragma once

Kristian

"Bertel Lund Hansen" <nospamius@lundhansen.dk> wrote in message
news:gc8pkvg1k5h8q2ql7accvic84oo7n56151@news.stofanet.dk...
> Hans L skrev:
>
> >Hvad er det jeg skriver øverst i en h-fil der opretter en klasse.
>
> >Er det ikke noget lignende:
>
> >#ifndef _klassenavn
> >define
>
>
> #ifndef _klassenavn
> #define _klassenavn
> ... hele molesjasen ...
> #endif
>
> Det sikrer at koden kun inkluderes én gang selv om den kaldes 117
> gange fra 35 andre moduler.
>
> --
> Bertel
> http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/



Robert Larsen (28-08-2003)
Kommentar
Fra : Robert Larsen


Dato : 28-08-03 23:12

Sikkert....men det er ikke tilrådeligt, da det så kun vil virke med
disse compilere.
Bertels måde er den "rigtige".

Kristian Dupont wrote:
> Hvis du bruger Visual C++ (og muligvis andre compilere), kan du også skrive
> #pragma once
>
> Kristian
>
> "Bertel Lund Hansen" <nospamius@lundhansen.dk> wrote in message
> news:gc8pkvg1k5h8q2ql7accvic84oo7n56151@news.stofanet.dk...
>
>>Hans L skrev:
>>
>>
>>>Hvad er det jeg skriver øverst i en h-fil der opretter en klasse.
>>
>>>Er det ikke noget lignende:
>>
>>>#ifndef _klassenavn
>>>define
>>
>>
>>#ifndef _klassenavn
>>#define _klassenavn
>>... hele molesjasen ...
>>#endif
>>
>>Det sikrer at koden kun inkluderes én gang selv om den kaldes 117
>>gange fra 35 andre moduler.
>>
>>--
>>Bertel
>>http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
>
>
>



Kristian Dupont (29-08-2003)
Kommentar
Fra : Kristian Dupont


Dato : 29-08-03 09:30

Korrekt, men man kan kombinere dem.
#pragma once har den fordel at compileren husker filen og dermed ikke skal
bruge energi på at åbne den hver gang for så blot at springe over den hvis
den ser header guarden. Et pænt alternativ til include guards.
Det betyder naturligvis ikke noget på små projekter, men i større projekter
er det meget praktisk.

Kristian

"Robert Larsen" <Xrobert@the-playground.dk> wrote in message
news:3F4E7E3C.6040505@the-playground.dk...
> Sikkert....men det er ikke tilrådeligt, da det så kun vil virke med
> disse compilere.
> Bertels måde er den "rigtige".




Robert Larsen (02-09-2003)
Kommentar
Fra : Robert Larsen


Dato : 02-09-03 00:15

Man kan faktisk også undgå at åbne filen men jeg synes selv at den
løsning er grim (vi bruger den på mit arbejde):

#ifndef EN_FIL_H
#include <en_fil.h>
#endif


....og 'en_fil.h' har så:

#ifndef EN_FIL_H
#define EN_FIL_H
.....
#endif

Robert

Kristian Dupont wrote:
> Korrekt, men man kan kombinere dem.
> #pragma once har den fordel at compileren husker filen og dermed ikke skal
> bruge energi på at åbne den hver gang for så blot at springe over den hvis
> den ser header guarden. Et pænt alternativ til include guards.
> Det betyder naturligvis ikke noget på små projekter, men i større projekter
> er det meget praktisk.
>
> Kristian
>
> "Robert Larsen" <Xrobert@the-playground.dk> wrote in message
> news:3F4E7E3C.6040505@the-playground.dk...
>
>>Sikkert....men det er ikke tilrådeligt, da det så kun vil virke med
>>disse compilere.
>>Bertels måde er den "rigtige".
>
>
>
>



Per Abrahamsen (03-09-2003)
Kommentar
Fra : Per Abrahamsen


Dato : 03-09-03 14:01

Robert Larsen <Xrobert@the-playground.dk> writes:

> Man kan faktisk også undgå at åbne filen men jeg synes selv at den
> løsning er grim (vi bruger den på mit arbejde):
>
> #ifndef EN_FIL_H
> #include <en_fil.h>
> #endif
>
>
> ...og 'en_fil.h' har så:
>
> #ifndef EN_FIL_H
> #define EN_FIL_H
> ....
> #endif

Hvis en_fil.h ser ud som du beskriver, vil GCC automatisk kun åbne den
en gang. Den ekstra include-guard du har i C filen er altså
overflødig, i hvert fald med GCC.

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409081
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste