Pomoc w typedef struct {...}GXAMPINFO

0

Witam
Czy moglby mi ktos wyjasnic co oznacza nastepujaca instrukcja:

GX_EACHAMP	set[128];

gdyby to bylo po prostu

GX_EACHAMP set;

to bym zrozumial.
Ja implementuje to z c++ do javy i jak daje z tym [128] to blad wywala.

Ponizej dodaje deklaracje struktor:

typedef struct {

	BYTE		amp[128];
	GX_EACHAMP	set[128];

} GX_AMPINFO;
typedef struct {

	BYTE		range;
	BYTE		sample;
	BYTE		use;
	BYTE		misc1;
	WORD		misc2;
	WORD		misc3;
	double		xpc;

} GX_EACHAMP;
0
GX_EACHAMP        set[128]; 

To co widać... Statyczna tablica struktur na stosie jak złoto ;)

0

Ale co oznacza to 128, i skoro tablica to jakiego typu, jak mam to w javie zadeklarowac bo jak pisze tak samo to blad wyrzuca.

0
GX_EACHAMP        set[128];  

wjavie bedzie wygladac tak (przy zalozeniu ze typ GX_AECHAMP istnieje):

GX_EACHAMP[]        set = new GXEACHAMP[128];

Dzieje sie tak poniewaz w Javie nie ma zmiennych odkladanych na stosie, sa tylko zmienne odkladane w pamieci RAM (tworzy sie je za pomoca new).

0

Dzieki masz racje.
Ale nie rozumie po co mi ta tablica 128-elementowa???
Jak mam sie teraz odwolywac do skladowych tej drugiej struktury, poprzez pierwsza???

np.

 Gx_AmpInfo.set[1].range = '6';
		Gx_AmpInfo.set[1].sample = '6';
		Gx_AmpInfo.set[1].use = '0';
		Gx_AmpInfo.set[1].misc1 = 9;
		Gx_AmpInfo.set[1].misc2 = 1;
		Gx_AmpInfo.set[1].misc3 = 0;

I dalej nie wiem po co mi ta tablica????

0

typedef struct {

    BYTE                amp[128];
    GX_EACHAMP        set[128];

} GX_AMPINFO;

GX_EACHAMP set[128] Oznacza, że tworzy 128 elementowa tablice (indeksowaną od 0..127) elementów typu GX_EACHAMP. Czyli każdorazowe utworzenie zmiennej typu GX_AMPINFO stworzy dwie tablice 128 elementowe. Gdyby było samo GX_EACHAMP set oznaczało by, że stworzyłeś obiekt typu GX_EACHAMP.
pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1