Talletukseen liittyvät aliohjelmat on suunniteltu string - tyyppisiksi. Mikäli jokin menee pieleen, palauttavat ne nimessään itse virheilmoitukseen, jolloin kutsunut ohjelma voi halutessaan tulostaa virheilmoituksen.
Mikäli aliohjelma päättyy onnellisesti, voidaan palauttaa tyhjä merkkijono, eli ei virheilmoitusta.
jasenet.cpp: static const char *TIED_EI_AUKEA = "Tiedosto ei aukea!"; ... if ( !f ) return TIED_EI_AUKEA; ... return ""; ... naytto.cpp: string virhe; virhe = kerho->lue_tiedostosta(tied); if ( virhe != "" ) { cout << virhe << endl; return 1; } return 0;
Tässä static tarkoittaa, että muuttuja on vain tämän tiedoston (jasenet.cpp ) sisäinen eikä näin ollen nimenä näy tiedoston ulkopuolelle. Kuitenkin muuttuja säilyttää arvonsa koko ohjelman suorituksen ajan, joten ulospäin voimme välittää osoitteita tällaisiin muuttujiin, ja näin jokin toinenkin ohjelman osa pääsee niihin käsiksi (tosin tässä ei ole suotavaa, että joku niitä muuttaisi, siis osoitteet on käsitettävä " read only "). Tähän käyttöön merkkijonot olisi voitu esitellä myös aliohjelman sisäisinä staticeina.
static- muuttujat varataan eri alueesta kuin aliohjelman lokaalit (automaattiset) muuttujat. Lokaalit muuttujat otetaan yleensä ajonaikana pinosta, joka saattaa myös loppua. Näin ollen ei- rekursiivisissa aliohjelmissa usein lokaaleillekin isoille muuttujille annetaan static- määritys.
C- kielen static - sanalla on siis kaksi merkitystä, ja sen tilalla pitäisikin olla oikeastaan kaksi eri sanaa: PRIVATE ja SAVE. Joku saattaisikin määritellä
#define PRIVATE static #define SAVE static