Sebbene questa domanda sia già emersa, la mia è diversa perché non dovrebbe coprire nulla OOP ma solo plain (ANSI) C .
Soprattutto nei software open source, di solito trovo una miriade di funzioni (per favore non chiamarle metodi poiché siamo non in OOP) con la parola chiave static
che precede il tipo di dati .
Ma che effetto ha effettivamente con C normale? Nei miei progetti, non ho mai avuto un'occasione in cui fosse effettivamente necessaria la parola chiave static
. (Anche se un cosiddetto programmatore esperto mi avrebbe probabilmente dato il consiglio, "Questa funzione dovrebbe essere dichiarata statica" e probabilmente avrei risposto nel mio modo sarcastico: "Uh-huh. Beh, funziona così com'è, dopo tutti". :)).
Dalla lettura del codice OSS, ho pensato che avrebbe potuto generare meno overhead durante la compilazione del progetto. Tuttavia, le prestazioni della CPU sono state così elevate che mi sono chiesto molte volte perché c'è un interesse continuo a dichiarare le funzioni statiche anche se potrebbe essere necessario uno strumento di benchmark per misurare le differenze nella velocità di esecuzione.