- Messaggi: 376
- Ringraziamenti ricevuti 38
uso corretto di struct
- Matteo Garia
-
Autore della discussione
- Moderatore
-
Less
Di più
12 Anni 4 Mesi fa - 12 Anni 4 Mesi fa #1
da Matteo Garia
uso corretto di struct è stato creato da Matteo Garia
Buonasera a tutti,
Sto cercando di capire ed imparare le struct
Gli esempi che cito ora sono legati al progetto RGB Led Controller di cui sto scrivendo una nuova versione firmware.
Voglio creare una struttura che contenga un colore, a questo punto scrivo:
e per richiamare ogni variabile:
fin qui tutto okay.
Però non mi accontento, voglio usare una struttura di strutture, per chiamare con un solo nome tutti i colori che mi servono.
Quindi ho bisogno di una struttura composta da 3 colori
ma se scrivo così, e richiamo i valori con:
il compilatore si incavola e mi restituisce:
mentre se dichiaro la struttura di strutture senza metterci il typedef, non ottengo errori ed il programma funziona correttamente.
Sono sicuro che qualcosa sulla sintassi del C mi sfugge
Quale scrittura è corretta per fare ciò che voglio?
(la domanda forse è un po' scontata, perchè la risposta ovvia è "quella che funziona"... ma magari c'è un altro modo ancora migliore!)
Grazie in anticipo
Matteo
Sto cercando di capire ed imparare le struct
Gli esempi che cito ora sono legati al progetto RGB Led Controller di cui sto scrivendo una nuova versione firmware.
Voglio creare una struttura che contenga un colore, a questo punto scrivo:
Code:
typedef struct{
unsigned char Red;
unsigned char Green;
unsigned char Blue;
}color;
e per richiamare ogni variabile:
Code:
color.Red
color.Green
color.Blue
fin qui tutto okay.
Però non mi accontento, voglio usare una struttura di strutture, per chiamare con un solo nome tutti i colori che mi servono.
Quindi ho bisogno di una struttura composta da 3 colori
Code:
typedef struct{
color Left;
color Right;
color Aux;
}struttura3colori;
ma se scrivo così, e richiamo i valori con:
Code:
struttura3Colori.Left.Red
il compilatore si incavola e mi restituisce:
Code:
RGB_Led_Controller.c:32: error: not a variable identifier "struttura3colori"
RGB_Led_Controller.c:32: error: struct/union required
RGB_Led_Controller.c:32: error: struct/union required
RGB_Led_Controller.c:32: error: illegal use of void expression
mentre se dichiaro la struttura di strutture senza metterci il typedef, non ottengo errori ed il programma funziona correttamente.
Sono sicuro che qualcosa sulla sintassi del C mi sfugge

Quale scrittura è corretta per fare ciò che voglio?
(la domanda forse è un po' scontata, perchè la risposta ovvia è "quella che funziona"... ma magari c'è un altro modo ancora migliore!)
Grazie in anticipo
Matteo
Ultima Modifica 12 Anni 4 Mesi fa da Matteo Garia.
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Fendo
- Giovane Utente
-
Less
Di più
- Messaggi: 39
- Ringraziamenti ricevuti 4
12 Anni 4 Mesi fa - 12 Anni 4 Mesi fa #2
da Fendo
Ciao
Ferdinando
Risposta da Fendo al topic Re: uso corretto di struct
E' un bel po di tempo che non scrivo più in C e lo sto rispolverando ora.
Così di primo achito direi che devi dichiarare una variabile di tipo "struttura3colori" perchè questa è la dichiarazione del tipo di dato e non la variabile associata al tipo.
Anzi pensandoci bene mi sa che dovresti scrivere:
Così di primo achito direi che devi dichiarare una variabile di tipo "struttura3colori" perchè questa è la dichiarazione del tipo di dato e non la variabile associata al tipo.
Anzi pensandoci bene mi sa che dovresti scrivere:
Code:
typdef struct {
struct color Left;
struct color Right;
struct color Aux;
} struttura3color
Ciao
Ferdinando
Ultima Modifica 12 Anni 4 Mesi fa da Fendo.
I seguenti utenti hanno detto grazie : Matteo Garia
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Matteo Garia
-
Autore della discussione
- Moderatore
-
Less
Di più
- Messaggi: 376
- Ringraziamenti ricevuti 38
12 Anni 4 Mesi fa #3
da Matteo Garia
Risposta da Matteo Garia al topic Re: uso corretto di struct
Sono un P... :side:
grazie
Matteo
grazie
Matteo
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Fendo
- Giovane Utente
-
Less
Di più
- Messaggi: 39
- Ringraziamenti ricevuti 4
12 Anni 4 Mesi fa #4
da Fendo
Ciao
Ferdinando
Risposta da Fendo al topic Re: uso corretto di struct
Ne approfitto per porre una domanda sulle strutture in C18.
E' possibile scrivere in C18 la seguente dichiarazione (penso ANSI C):
anzichè:
?
E' possibile scrivere in C18 la seguente dichiarazione (penso ANSI C):
Code:
struct nome_tipo_struttura {
tipo nome_variabile;
tipo nome_variabile;
.
.
.
} variabili_struttura1, variabile_struttura2, ecc...;
anzichè:
Code:
typedef struct {
tipo nome_variabile;
tipo nome_variabile;
.
.
.
} nome_tipo_struttura;
?
Ciao
Ferdinando
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, StefA
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- Strana anomalia LT lib module_EEPROM
- da marcoilgrande
-
- Nuova versione Kicad 9
- da Mauro Laurenti
-
- MODULO GSM SIM900A
- da embedded
-
- Freedom III e compilazioni fallite
- da Black
-
- LTerminal - nuove funzioni
- da Mauro Laurenti