Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
32
ROZDZIAŁ3.ZMIENNEIICHNAZWY
Jeślizmiennaniejestzmiennąautomatyczną(patrzpodrozdział3.2.1),inicjalizacja
jestdokonywanatylkoraz,zwyklenapoczątkuwykonywaniaprogramu,awyra-
żenieinicjalizującemusiskładaćsięwyłączniezestałych2.Zmiennestatyczne
domyślnieinicjalizowanewartościązerowądanegotypu.Zmienneautomatyczne
inicjalizowaneprzykażdymwchodzeniudoblokuprogramu,wktórychistnieją,
imogąbyćinicjalizowanedowolnymwyrażeniem.
Nazwyzmiennych,którychmożnaużywaćwjęzykuC,podlegająpewnym
ograniczeniom.Nazwyzmiennychmogąsięskładaćzlitericyfr,jednakpierwszym
znakiemnazwymusibyćlitera.Jakoliterętraktujesiętakżeznakpodkreślenian_”,
któryjestczęstoużywanywnazwachdlapolepszeniaichczytelności.Nienależy
używaćgojednakjakopierwszegoznakunazwy,gdyżzwyczajoworobiątofunkcje
biblioteczne.JęzykCrozróżniawielkieimałeliteryzazwyczajnazwyzmiennych
rozpoczynasięodmałejlitery,natomiastnazwyzłożonewyłączniezwielkichliter
stosujesiędlastałych.Nazwyzmiennychniemogąbyćidentycznezesłowami
kluczowymijęzykaC,np.if,while,floatitp.
StandardjęzykaCprzewidujerozróżnianiepierwszych31znakównazwyzmien-
nejwprzypadkuzmiennychwewnętrznych.Pozostałeznaki,zależnieodimplemen-
tacji,mogą,aleniemuszą,byćrozróżniane.Wprzypadkuzmiennychzewnętrz-
nychstandardgwarantujerozróżnianiejedyniepierwszych6znakównazwyzmien-
nejpisanychwyłączniemałymiliterami.Dziejesiętakdlatego,żezmienneze-
wnętrznemogąpochodzićzkompilatorówinnychjęzykówprogramowanialubmogą
byćłączoneprzezinne,niekompatybilnezjęzykiemCprogramyłączące(linkery).
Wprzypadkukoniecznościzapewnieniapełnejprzenośnościpolecasięstosowanie
wyłącznienazwzmiennychskładającychsięzmałychliteriróżniącychsiępierw-
szymisześciomaznakaminazwy,uzupełnionymidalszączęściąnazwydlalepszej
czytelności,np:
externinta_stv_bardzo_dluga_nazwa,
a_xyz_bardzo_dluga_nazwa2;
Wpowyższymprzykładziea_stvia_xyznieprzekraczającymi6-ciuznaków
unikalnymiczęściaminazw,uzupełnionymiczęściąnopisową”.Wraziekonieczności
nazwytakiemożnakonwertowaćdonazwbardziejeleganckichzapomocąkonstruk-
cji#define:
#definebardzo_dluga_nazwaa_stv_bardzo_dluga_nazwa
3.1
Kwalifikatorytypu
Deklaracjazmiennejmożebyćpoprzedzonatzw.kwalifikatoremtypudlazazna-
czeniaspecjalnychjejwłasności.StandardANSI/ISOC,wnajnowszejkorekcie,
przewidujeomówioneponiżejtrzykwalifikatorytypu.Najbardziejużytecznekom-
binacjekwalifikatorówmiejscaitypuomówionowpodrozdziale3.3.
2JesttojednazróżnicwstosunkudojęzykaC++.