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.