uso corretto di struct

  • Matteo Garia
  • Autore della discussione
  • Moderatore
  • Moderatore
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:
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
  • Giovane Utente
Di più
12 Anni 4 Mesi fa - 12 Anni 4 Mesi fa #2 da Fendo
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:
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
  • Moderatore
Di più
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

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Fendo
  • Giovane Utente
  • Giovane Utente
Di più
12 Anni 4 Mesi fa #4 da Fendo
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):
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 LaurentiStefA

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Forum - Ultimi messaggi