Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [C]Istruzione typedef

  1. #1

    [C]Istruzione typedef

    Sto imparando il C da poco tempo e mi sarebbe utile una spiegazione molto pratica dell'istruzione typedef della quale non riesco a capire molto bene l'utilità...
    l'ho vista prima prima della dichiarazione di una struttura e del puntatore a una struttura..

    ringrazio tutti quelli che mi saranno d'aiuto
    Forex: forum dedicato al mercato del trading forex

  2. #2
    ho capito che prima di una struttura serve a dichiarare un nuovo ti po di dato proprio come se si trattasse di un int char ecc.,,ma non ho capito a cosa serva prima di un puntatore
    ad esempio

    codice:
    typedef struct rec *lpointer
    Forex: forum dedicato al mercato del trading forex

  3. #3
    codice:
    typedef struct rec *lpointer; /*2*/
    
    typedef struct rec 
    
    { 
    
        char titolo[50];
    
        char autore[20];
    
        char editore[20];
    
        long int prezzo;
    
        lpointer next; /*3*/
    
    }libro;
    Un'altra cosa...nella struttura rec dopo l'ultima parentesi graffa appare libro...che senso ha?
    La struttura si chiama libro o rec?
    Forex: forum dedicato al mercato del trading forex

  4. #4
    messo prima di un puntatore ti permette di dichiarare un puntatore a quella struttura semplicemente scrivendo :

    libro miolibro;

    senza indicare nel codice del programma che stai utilizzando un puntatore, ma soltanto nella definizione della struttura

  5. #5
    Originariamente inviato da doraemon83
    messo prima di un puntatore ti permette di dichiarare un puntatore a quella struttura semplicemente scrivendo :

    libro miolibro;

    senza indicare nel codice del programma che stai utilizzando un puntatore, ma soltanto nella definizione della struttura
    grazie, penso di avere capito..per l'altra domanda?
    Forex: forum dedicato al mercato del trading forex

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Vediamo di chiarire:
    codice:
    struct libro
    {
        char titolo[30];
        char autore[30];
    };
    Questa è una semplice struttura. Quando dovrai creare delle variabili di questa struttura, dovrai fare:

    struct libro unLibro;

    facendo invece:
    codice:
    typedef struct libro
    {
        char titolo[30];
        char autore[30];
    } LIBRO;
    Puoi poi dichiarare:

    LIBRO unLibro;

    Nota che con la typedef, la parola 'libro' dopo struct la potresti anche togliere.

    A quel punto potresti fare:

    typedef LIBRO* PLIBRO;

    e ottieni PLIBRO che è un nuovo tipo di dato che è un puntatore a LIBRO.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    quindi il vero tipo è quello dichiarato dopo l'ultima graffa mentre quello dichiarato dopo struct è opzionale e non serve a nulla, giusto?
    Forex: forum dedicato al mercato del trading forex

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da carlo10
    quindi il vero tipo è quello dichiarato dopo l'ultima graffa mentre quello dichiarato dopo struct è opzionale e non serve a nulla, giusto?
    No allora, per essere più precisi:

    La seguente è una struttura "anonima" (senza nome) ma con 2 variabili già dichiarate.
    codice:
    struct
    {
        char titolo[30];
        char autore[30];
    } unLibro, secondoLibro;
    La seguente è una struttura "standard".
    codice:
    struct libro
    {
        char titolo[30];
        char autore[30];
    };
    
    struct libro unLibro;
    struct libro secondoLibro;
    La seguente è una struttura con typedef. In questo caso 'libro' dopo struct è opzionale, se lo ometti, diventa una struttura "anonima" ma con il typedef hai LIBRO per poterla usare.
    codice:
    typedef struct libro
    {
        char titolo[30];
        char autore[30];
    } LIBRO;
    Ok?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    si grazie...molto simpatica la tua firma...per ora sono uno di quelli che non hanno capito i puntatori...ma ci sto provando...ciao alla prossima
    Forex: forum dedicato al mercato del trading forex

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.