|
| Typedef struct konstruktion Fra : Bent Sørensen |
Dato : 05-05-03 16:06 |
|
Hej,
Jeg faldt over noget kode, som jeg synes virker mærkeligt.
Her gengivet lidt skematisk:
typedef struct SomeResult SomeResult;
struct SomeResult
{
int a;
int b;
};
typedef SomeResult GetSomeResult;
Hvad er meningen med den første linie - er det ikke lidt
redundant?
Normalt ville jeg nok bare lave:
typedef struct
{
int a;
int b;
} SomeResult;
Jeg har leget lidt med det i MSVC 6, og kan ikke se at linie1
bruges til noget fornuftigt - det virker ens uanset om den er
med eller ej?
Har det noget at gøre med at nogle kompilere vil have det på en
bestemt måde?
Nogen der kan kaste lidt lys over dette?
/Bent
| |
Byrial Jensen (05-05-2003)
| Kommentar Fra : Byrial Jensen |
Dato : 05-05-03 19:53 |
|
Bent Sørensen wrote:
> typedef struct SomeResult SomeResult;
>
> Hvad er meningen med den første linie - er det ikke lidt
> redundant?
Jo, hvis der er tale om C++. Er det derimod C-kode, er det ikke redundant.
| |
Thomas (05-05-2003)
| Kommentar Fra : Thomas |
Dato : 05-05-03 21:07 |
|
> Jo, hvis der er tale om C++. Er det derimod C-kode, er det ikke redundant.
Hvorfor egentlig ikke? Jeg viser måske manglende erfaring, men giver typedef
struct SomeResult SomeResult;
ikke bare at SomeResult er en SomeResult?
Er det i forbindelse med særlig angivelse af struct? Med andre ord.. er det
for at give mulighed for senere at skrive SomeResult og droppe struct i den
sammenhæng, da struct ellers skal foran enhver struct-type i c?
Eller hvorledes...?
| |
Kent Friis (05-05-2003)
| Kommentar Fra : Kent Friis |
Dato : 05-05-03 21:18 |
|
Den Mon, 5 May 2003 22:07:01 +0200 skrev Thomas:
>> Jo, hvis der er tale om C++. Er det derimod C-kode, er det ikke redundant.
>
>Hvorfor egentlig ikke? Jeg viser måske manglende erfaring, men giver typedef
>struct SomeResult SomeResult;
>ikke bare at SomeResult er en SomeResult?
>Er det i forbindelse med særlig angivelse af struct? Med andre ord.. er det
>for at give mulighed for senere at skrive SomeResult og droppe struct i den
>sammenhæng, da struct ellers skal foran enhver struct-type i c?
Ja:
typedef struct structname typename;
struct structname x;
typename y;
Mvh
Kent
--
"A computer is a state machine.
Threads are for people who can't program state machines."
- Alan Cox
| |
|
|