Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C] static

  1. #1

    [C] static

    ciao,

    ho visto che in alcuni sorgenti la parola static è usata anche nella dichiarazione di funzioni. Cos'è una funzione static?

    grazie

  2. #2
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119

    Re: [C] static

    Originariamente inviato da matteolandi
    ciao,

    ho visto che in alcuni sorgenti la parola static è usata anche nella dichiarazione di funzioni. Cos'è una funzione static?

    grazie
    Le funzioni static sono funzioni private al file in cui sono dichiarate e definite. Ovvero possono essere utilizzate solo dal main (o da altre funzioni) all'interno del file. Funzioni definite in altri file non saranno invece in grado di utilizzarle.
    L'attributo static in C ha diversi significati... Prova a dare un'occhiata on line...

  3. #3
    TNX

  4. #4
    ... si ma in quali casi può essere conveniente definire static una funzione in modo che altri file non siano in grado di utilizzarle?

  5. #5
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    Originariamente inviato da matteolandi
    ... si ma in quali casi può essere conveniente definire static una funzione in modo che altri file non siano in grado di utilizzarle?
    Ad esempio potresti voler fare in modo che ogni file di un progetto abbia al suo interno una funzione privata chiamata "sort(...)" la quale ha una specifica implementazione a seconda del file in cui si trova. Pertanto vorresti che tale funzione privata fosse usata esclusivamente all'interno del file. Mettendo l'attributo static sei "sicuro" che ogni chiamata dall'esterno ad una eventuale funzione con lo stesso nome (sort(...)) non vada a richiamare quella che tu hai caratterizzato, appunto, con l'attributo static.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.