|
| initialisering af struct med int array ind~ Fra : Troels Thomsen |
Dato : 19-02-04 11:00 |
|
Hej, Hvordan initialiserer jeg flg array:
typedef struct {
char* str;
int Ids[4];
}myItem;
myItem theConfig[] = {
{"asdf" , {2,6,4,6} } , // wrong !!
{"qwerty" , ??????} , // ??????
};
Har experimenteret med flg, men så kommer mine data ikke til at stå sammen
typedef struct {
char* str;
int* Ids;
}myItem;
int lst1[] = {4,3,6,5};
int lst2[] = {8,5,3,2};
myItem theConfig[] = {
{"asdf" , lst1} ,
{"qwerty" , lst2} ,
};
mvh Troels
| |
Ivan Johansen (19-02-2004)
| Kommentar Fra : Ivan Johansen |
Dato : 19-02-04 19:16 |
|
Troels Thomsen wrote:
> typedef struct {
> char* str;
> int Ids[4];
> }myItem;
>
> myItem theConfig[] = {
> {"asdf" , {2,6,4,6} } , // wrong !!
> {"qwerty" , ??????} , // ??????
> };
Det er korrekt, hvis du erstatter spørgsmålstegnene med data og fjerner
det sidste komma. Følgende compiler med Borland C++ Builder 6:
myItem theConfig[] =
{
{"asdf" , {2,6,4,6}},
{"qwerty" ,{1,2,3,4}}
};
Ivan Johansen
| |
Byrial Jensen (19-02-2004)
| Kommentar Fra : Byrial Jensen |
Dato : 19-02-04 20:33 |
|
Ivan Johansen wrote:
> Troels Thomsen wrote:
> > typedef struct {
> > char* str;
> > int Ids[4];
> > }myItem;
> >
> > myItem theConfig[] = {
> > {"asdf" , {2,6,4,6} } , // wrong !!
> > {"qwerty" , ??????} , // ??????
> > };
>
> Det er korrekt, hvis du erstatter spørgsmålstegnene med data og fjerner
> det sidste komma.
Det er nok at erstatte spørgsmålstegnene med data for at gøre det
korrekt - i hvert fald hvis der er tale om C-kode. Jeg ved ikke om en
C++-initialisering af et array må slutte med et komma, men det er
tilladt i C.
| |
Ivan Johansen (19-02-2004)
| Kommentar Fra : Ivan Johansen |
Dato : 19-02-04 22:48 |
|
Byrial Jensen wrote:
> Det er nok at erstatte spørgsmålstegnene med data for at gøre det
> korrekt - i hvert fald hvis der er tale om C-kode. Jeg ved ikke om en
> C++-initialisering af et array må slutte med et komma, men det er
> tilladt i C.
Du har sørme ret. Det virker også i C++. Det var jeg ikke klar over.
Ivan Johansen
| |
Troels Thomsen (20-02-2004)
| Kommentar Fra : Troels Thomsen |
Dato : 20-02-04 09:59 |
|
(ja, initialiseringen virkede sq da fint nok)
> Jeg ved ikke om en
> C++-initialisering af et array må slutte med et komma, men det er
> tilladt i C.
>
Ok. I dokumentationen til IAR's C compiler (til atmel avr) står at et sådant
komma i forbindelse med enums er en extention som de har lavet.
Underforstået at det ifb med enums ikke er del af standarden.
mvh Troels
| |
Ivan Johansen (20-02-2004)
| Kommentar Fra : Ivan Johansen |
Dato : 20-02-04 11:02 |
|
Troels Thomsen wrote:
> Ok. I dokumentationen til IAR's C compiler (til atmel avr) står at et sådant
> komma i forbindelse med enums er en extention som de har lavet.
> Underforstået at det ifb med enums ikke er del af standarden.
Ja for enum virker det heller ikke i C++, men det gør det for arrays.
Det ser dog ud til at komma i enden af en enum er gyldig i C99 men ikke
i C89 (Ifølge Comeau C).
Ivan Johansen
| |
|
|