La visibilità delle funzioni

  • Anche per le funzioni esistono delle regole di scoping
  • Se si invoca una funzione non dichiarata in C, viene automaticamente creata una dichiarazione con tipo di ritorno int o del tipo necessario se usata in un'assegnazione
  • In C++, se manca il prototipo di una funzione prima dell'invocazione, viene generato un errore
  • Una funzione può essere dichiarata static, diventando locale al modulo
  • Per usare una funzione in un modulo diverso da quello dove è stata definita, ammesso che essa non sia static, occorre introdurre nel modulo una dichiarazione o un prototipo della funzione
  • Una dichiarazione di funzione ha la seguente sintassi:
    <tipo restituito> <nome funzione> ();
  • Un prototipo di funzione ha la seguente sintassi:
    <tipo restituito> <nome funzione> (void | <tipo parametro> [<nome parametro>] [,<tipo parametro> [<nome parametro>]]... );
    In c++ void è opzionale, in quanto non posso confondere una dichiarazione con un prototipo (non esistono le dichiarazioni di funzione ma solo i prototipi)
  • La definizione di una funzione ha la seguente sintassi:
    <tipo restituito> <nome funzione> ([void] | <tipo parametro> <nome parametro> [,<tipo parametro> <nome parametro>]... ) { <corpo funzione> }

© Ing. Stefano Salvi - All rights reserved