|
| 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.
| |
|
|