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.