Chiedo scusa se alla domanda la prima risposta che vi viene in mente è UTFG o "apri la prima IDE che hai sotto mano e controlla da te", ma diciamo che sono più alla ricerca di un.. conforto o per meglio dire una spiegazione/risorsa che possa una volta per tutte dirmi tutto quello che c'è da dire su questa keyword quando utilizzata con scope globale.
Allora (chiedo scusa per la congiunzione coordinante conclusiva ad inizio di frase, ma mi aiuta a riordinare le idee), ciò che io so è che, quando è usata come modificatore in una dichiarazione globale, rende l'oggetto della dichiarazione "statica" (visibile) solo all'unità di compilazione. Fino a quando parliamo di variabili di dati il tutto fila liscio, è come un "private" in OOP.
Il cervello però mi si ingrippa un po' quando passiamo alle funzioni. Il concetto è lo stesso, ma questo significa per caso che i prototipi non li posso dichiarare in un file a parte o lo static si applica solo all'implementazione della funzione e non alla dichiarazione?
Faccio un esempio, questo è legale?
File MyHeader.h
- Codice: Seleziona tutto
static void aFunction(void);
File MySourceFile.c
- Codice: Seleziona tutto
#include "MyHeader.h"
int main(int argc, **argv)
{
aFunction();
return 0;
}
static void aFunction(void)
{
return;
}
In altre parole ciò che mi sfugge è: un file header .h è considerato unità di compilazione a sé stante o l'include lo fa diventare parte integrante dell'unità di compilazione dove viene incluso?
Perché se fosse a sé stante, il prototipo e l'implementazione devono risiedere nello stesso file, altrimenti posso smazzarli in giro.
Ringrazio in anticipo chi ha avuto la bontà di leggere fin qui e chi vorrà aiutarmi a dipanare questo dubbio.


Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)



instead of
(Anonimo).
ain't
, right?
in lieu of
.
for
arithm.