You are on page 1of 4

Vi t kha thng gp cn lu trong lp trnh C cho vi iu khin

C php khai bo hm thng thng nh sau:


<Lp lu tr> <Kiu tr v> <Tn hm>(<Kiu tham s 1><tn tham s 1>, Kiu tham s 2><tn tham s
2>,... );
Trong C/C++ c 5 lp lu tr:
- Auto
- Extern(al)
- Static
- Register
-Volatile
1. Auto
Bin t ng tht ra l bin m chng ta hay dng.
Khi ta vit: int a; n hiu auto int a;
2. Extern
Extern l c php, tn y ca n l External hay cn gi l bin ngoi.
Trong C/C++, mt chng trnh ln c th c chia thnh cc module nh hn, cc module ny
c th c bin dch ring l v c lin kt li vi nhau. iu ny thc hin nhm tng tc bin
dch cc chng trnh ln. Tuy nhin, khi cc module c ln kt , cc tp tin phi c chng trnh
thng bo cc bin ton cc c yu cu. Mt bin ton cc ch c th c khai bo 1 ln. Nu vi
phm, s thng bo li "Duplicate variable name" (Trng tn bin). Nu trong cc tp tin lin kt nhau
c bin trng th n s thng bo li "Duplicate lable" (Nhn trng nhau). Ngi ta s s dng lp lu
tr extern gii quyt vn

File 2 c cc bin ton cc ging file 1, ngoi tr mt im l cc bin ny c t kha extern
c them vo s khai bo ca chng. T kha ny ni vi trnh bin dch l tn v kiu ca bin ton
cc c s dng m khng phi to li s lu tr cho chng. Khi 2 module c lin kt, cc tham
chiu n cc bin ngoi c gii quyt.
Ch : Nu mt bin khng c khai bo trong mt hm no , trnh bin dch s so n vi
bt kz bin ton cc no trong tt c cc file. Nu khp vi bin ton cc no, trnh bin dch s xem
nh 1 bin ton cc ang c tham chiu n.
3. Static
Cc bin static hay cn gi l cc bin tnh l cc bin c nh bn trong cc hm hoc tp tin.
Khng ging nh cc bin ton cc, chng khng c bit n bn ngoi hm hoc tp tin ca chng,
nhng im hay ch, chng gi c gi tr gia cc ln gi. Hay ni cch khc, nu mt hm kt thc
v sau c gi li, cc bin tnh nh ngha trong hm vn gi c gi tr. Bin tnh c s u
tin cao hn cc bin ngoi




4. Register:
T kha register s u tin t bin vo thanh ghi ca CPU.Ti sao phi lm nh vy? Tc
truy xut d liu trn thanh ghi ca CPU nhanh hn rt nhiu so vi trn b nh, do , nu mt bin
i hi phi truy xut, thay i nhiu nn dng t kha register t n trong CPU.
5. Volatile:
Trong khi t kha const c ngha l bin khng thay i gi tr , th khai b bin vi t kha
Volatile c ngha l chng ta khng bit bin ny s thay i lc no v do trnh bin dch s khng
thc hin cc ti u ha da trn gi thit v s n nh ca bin ny. Mt bin volatile s c c
vo khi m gi tr ca n c cn n.
Mt trng hp c bit ca cc bin volatile l khi chng ta vit cc chng trnh a lung. V
d khi chng ta ang ch i mt c no ang c x l bi mt lun khc th bin c bt buc
phi l volatile.
Cc bin volatile khng c nh hng g ti chng trnh nu chng ta khng thc hin ti u
ha n nhng s c th c cc li rt tinh vi khi chng ta tin hnh ti u ha chng trnh.

Nhiu trnh bin dch s t ng lc b dng 1, v cho rng dng ny khng c tc dng, gi tr
bin EnableFlag ng no cng l 0.
Nhng nu ta khai bo vi t kha volatile, trnh bin dch hiu l gi tr ca bin ny c th b
can thip bi cc tc nhn khc ng thi, ch khng ch on code ang thc thi, nn n s bin dch
y cc lnh.

Inline : Hm ni tuyn
Vic t chc chng trnh thnh cc hm c u im l gim kch thc ca chng trnh
nhng li lm chm tc chng trnh do phi thc hin mt s thao tc c tnh th tc khi gi hm.
Hm trc tuyn trong C++ cho kh nng khc phc nhc im .
bin mt hm thnh mt hm trc tuyn, ta ch cn thm t kha inline vo trc khai bo
nguyn mu hm. Nu khng s dng hm nguyn mu th vit t kha ny trc dng u tin ca
nh ngha hm.
V d:

Chng trnh dch x l{ hm inline nh cc macro, ngha l n s thay mi li gi hm bng mt
on chng trnh thc hin nhim v hm. Cch lm ny lm cho chng trnh di ra, nhng tc
chng trnh tng ln do khng phi thc hin cc thao tc c tnh th tc khi gi hm
Do , ch s dng hm trc tuyn cho cc hm nh.

You might also like