[C] Identificatori

di il
4 risposte

[C] Identificatori

Mi piacerebbe ricevere dei chiarimenti sui seguenti due periodi, credo di aver capito, ma non ne sono del tutto certo..

"Sono significativi come minimo i primi 31 caratteri di un nome locale. Il numero potrebbe diminuire per i nomi delle funzioni e le variabili esterne, poiché i nomi globali possono essere usati da assemblatori e caricatori sui quali il linguaggio non ha alcun controllo. Quanto ai nomi esterni, lo standard ne garantisce l'univocità limitatamente a 6 caratteri, senza distinzione fra maiuscole e minuscole."
* da Il linguaggio C. Principi di programmazione e manuale di riferimento. di Brian W. Kernighan, Dennis M. Ritchie

Ho evidenziato in grassetto "nomi delle funzioni e le variabili esterne" ed "nomi esterni".

4 Risposte

  • Re: [C] Identificatori

    UP
  • Re: [C] Identificatori

    UP
  • Re: [C] Identificatori

    Benche' il K&R sia IL manuale di riferimento per il linguaggio C, devi fare riferimento all'ultimo standard per il C, cioe' C11



    In alternativa c'e' il C99

    https://en.wikipedia.org/wiki/C9

    Comunque un po' di indicazioni le trovi qui:



    In generale la lunghezza MASSIMA sicura per gli identificatori e' di 31 caratteri, e conviene considerarli sempre CASE-SENSITIVE.
    In realta' la lunghezza potrebbe arrivare anche a 250 caratteri ed oltre, ma questo e' un effetto collaterale del fatto che il compilatore per il C e' anche il compilatore per il C++, con opportuni flag abilitati/disabilitati. E poiche' il C++ deve supportare il template, questi possono avere dei nomi con lunghezze impressionanti

    Per "identificatore esterno" si intende l'identificatore di una funzione in un'ALTRA LIBRERIA: una delle librerie che importi nella tua applicazione.
    Attenzione, la libreria "esterna" potresti averla creata tu, non implica NECCESSARIAMENTE che sia una libreria creata da altri.
  • Re: [C] Identificatori

    migliorabile ha scritto:


    Benche' il K&R sia IL manuale di riferimento per il linguaggio C, devi fare riferimento all'ultimo standard per il C, cioe' C11
    Ques'edizione del libro è stata pubblicata nel corso del 2018, e se non sbaglio è specificato che è aggiornata all'ultimo standard ANSI...

    migliorabile ha scritto:


    Per "identificatore esterno" si intende l'identificatore di una funzione in un'ALTRA LIBRERIA: una delle librerie che importi nella tua applicazione.
    Attenzione, la libreria "esterna" potresti averla creata tu, non implica NECCESSARIAMENTE che sia una libreria creata da altri.
    Quindi se creo un'header con tot funzioni prese da altri sorgenti e includo l'header nel mio sorgente, quei identificatori sono "esterni"?
Devi accedere o registrarti per scrivere nel forum
4 risposte