/ 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
const struct i keil
Fra : Repzak


Dato : 11-02-04 11:01

Hejsa

const struct tone
{
unsigned int freq;
unsigned char length;
}sounds[2][3] = {freq50, time100, freq1000, time300, no, no, {freq10,
time100, freq100, time300, no, no};

Dette nå jeg gerne

Men jeg vil gerne kunne gøre det således

const struct tone
{
unsigned int freq;
unsigned char length;
}sounds[2][2];

sounds[0][] = {freq50, time100, freq1000, time300, no, no};

sounds[1][] = {freq10, time100, freq100, time300, no, no};

Eller noget ligende. er det ikke muligt??? om numrene bliver byttet om
betyder ikke noget. det er bare lettet at overskue på den måde som er i
nummer 2. nogen der han en iden. EVT. alternativ ide. Men det skal være en
const.

René



 
 
Bertel Brander (11-02-2004)
Kommentar
Fra : Bertel Brander


Dato : 11-02-04 22:55

Repzak wrote:

> Hejsa
>
> const struct tone
> {
> unsigned int freq;
> unsigned char length;
> }sounds[2][3] = {freq50, time100, freq1000, time300, no, no, {freq10,
> time100, freq100, time300, no, no};
>
> Dette nå jeg gerne
>
> Men jeg vil gerne kunne gøre det således
>
> const struct tone
> {
> unsigned int freq;
> unsigned char length;
> }sounds[2][2];
>
> sounds[0][] = {freq50, time100, freq1000, time300, no, no};
>
> sounds[1][] = {freq10, time100, freq100, time300, no, no};
>
> Eller noget ligende. er det ikke muligt??? om numrene bliver byttet om
> betyder ikke noget. det er bare lettet at overskue på den måde som er i
> nummer 2. nogen der han en iden. EVT. alternativ ide. Men det skal være en
> const.
>
Jeg ville nok lave:

typedef struct tone
{
unsigned int freq;
unsigned char length;
}tone;

const tone tone1[] = {{440, 100}, {468, 110}};
const tone tone2[] = {{555, 100}, {987, 130}};

const tone *Sounds[] = {tone1, tone2};

> René
>

Hvorfor hedder Kasper René i dag?

/b


Kasper (12-02-2004)
Kommentar
Fra : Kasper


Dato : 12-02-04 00:17

>
> Hvorfor hedder Kasper René i dag?

Lool...

En af mine class mates brugte min laptop her i dag (:

Kasper



René Jensen (12-02-2004)
Kommentar
Fra : René Jensen


Dato : 12-02-04 21:18

Hejsa

Hvordan får man dataene ud af denne måde at gemme dem på?? det var nemlig
noget i den stil jeg var på jagt efter

René


> Jeg ville nok lave:
>
> typedef struct tone
> {
> unsigned int freq;
> unsigned char length;
> }tone;
>
> const tone tone1[] = {{440, 100}, {468, 110}};
> const tone tone2[] = {{555, 100}, {987, 130}};
>
> const tone *Sounds[] = {tone1, tone2};
>
> > René
> >
>
> Hvorfor hedder Kasper René i dag?
>
> /b
>



Bertel Brander (12-02-2004)
Kommentar
Fra : Bertel Brander


Dato : 12-02-04 23:32

René Jensen wrote:
> Hejsa
>
> Hvordan får man dataene ud af denne måde at gemme dem på?? det var nemlig
> noget i den stil jeg var på jagt efter
>
> René

Du laver access til tonerne på samme måde som var det
et array af arrays, f.ex:

int main(void)
{
printf("Tone[0][0]: %d Hz Length: %d\n", Sounds[0][0].freq,
Sounds[0][0].length);
printf("Tone[1][1]: %d Hz Length: %d\n", Sounds[1][1].freq,
Sounds[1][1].length);
return 0;
}

/b


René Jensen (13-02-2004)
Kommentar
Fra : René Jensen


Dato : 13-02-04 13:03

Hejsa

Dette har jeg prøvet men får compiler fejl som siger at der venstre side af
punktummet skal være en struct/union.

det ser sådan her ud

const struct tone
{
unsigned int freq;
unsigned char length;
}tone;


const struct tone tone1[] = {{freq100, time100},{freq500,time100}};
const struct tone tone2[] = {{freq100, time100},{freq500,time100}};


const *sounds[] = {tone1, tone2};


void function(void)
{
sound_array_number = 0;
sound_array_loop = 0;

sound_lenght_loop = sounds[sound_array_number][sound_array_loop].freq;

}

Dette må jeg somehow ikke. hvir jeg fjerne .freq vil den godt compile. men
det er jo ikke rigtig. og hvis jeg i i tone1 fjerner struct får jeg også
compiler fejl.

> Du laver access til tonerne på samme måde som var det
> et array af arrays, f.ex:
>
> int main(void)
> {
> printf("Tone[0][0]: %d Hz Length: %d\n", Sounds[0][0].freq,
> Sounds[0][0].length);
> printf("Tone[1][1]: %d Hz Length: %d\n", Sounds[1][1].freq,
> Sounds[1][1].length);
> return 0;
> }
>
> /b
>



Anders J. Munch (13-02-2004)
Kommentar
Fra : Anders J. Munch


Dato : 13-02-04 13:32

"René Jensen" <rene-jensenFJERN@MIGget2net.dk> wrote:
>
> const *sounds[] = {tone1, tone2};

Der mangler en type her. Mente du måske:

const struct tone* sound[] = {tone1,tone2};

mvh. Anders



René Jensen (13-02-2004)
Kommentar
Fra : René Jensen


Dato : 13-02-04 17:09

Det kunne godt være *lol*

Takker

nu virker det
"Anders J. Munch" <andersjm@dancontrol.dk> skrev i en meddelelse
news:402cc3a7$0$95083$edfadb0f@dread11.news.tele.dk...
> "René Jensen" <rene-jensenFJERN@MIGget2net.dk> wrote:
> >
> > const *sounds[] = {tone1, tone2};
>
> Der mangler en type her. Mente du måske:
>
> const struct tone* sound[] = {tone1,tone2};
>
> mvh. Anders
>
>



Igor V. Rafienko (13-02-2004)
Kommentar
Fra : Igor V. Rafienko


Dato : 13-02-04 17:35

[ René Jensen ]

[ ... ]

> const struct tone
^^^^^

Nøyaktig hva betyr dette? (Jeg var nemlig alltid overbevist at const
kunne spesifiseres kun for objekter og (returtyper) for funksjoner.

[ ... ]

   



ivr
--
<html><form><input type crash></form></html>

Byrial Jensen (13-02-2004)
Kommentar
Fra : Byrial Jensen


Dato : 13-02-04 21:15

Igor V. Rafienko wrote:
> [ René Jensen ]
>
>>const struct tone
> ^^^^^
>
> Nøyaktig hva betyr dette? (Jeg var nemlig alltid overbevist at const
> kunne spesifiseres kun for objekter og (returtyper) for funksjoner.

Hele konstruktionen så sådan her ud:

const struct tone
{
unsigned int freq;
unsigned char length;
}tone;

Det er dels en erklæring en typen "struct tone", og dels en erklæring af
objektet "tone" med typen "struct tone".

Der må i C gerne være type-qualifiere ("const" og/eller "volatile")
foran erklæringer af structs og unions. De betyder i givent fald intet
for selve typeerklæringen.

Det er også tilladt i C at erklære konstante objekter uden at
initialisere dem - som det sker med "tone" - selvom det betyder at
objektet efterfølgende ikke vil kunne bruges til noget.

Disse ting er ikke tilladt i C++ så vidt jeg ved, så koden ovenfor er
endnu et eksempel på korrekt C-kode som ikke er korrekt C++-kode.


Per Abrahamsen (14-02-2004)
Kommentar
Fra : Per Abrahamsen


Dato : 14-02-04 15:07

Byrial Jensen <bjensen@nospam.dk> writes:

> Det er også tilladt i C at erklære konstante objekter uden at
> initialisere dem - som det sker med "tone" - selvom det betyder at
> objektet efterfølgende ikke vil kunne bruges til noget.

Man vil kunne tage adressen på det. Hvilket kan være nyttigt hvis man
har brug for en "magisk værdi".

> Disse ting er ikke tilladt i C++ så vidt jeg ved, så koden ovenfor er
> endnu et eksempel på korrekt C-kode som ikke er korrekt C++-kode.

I C++ skal funktionen have en default constructor for at det virker.

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

Månedens bedste
Årets bedste
Sidste års bedste