[ Pobierz całość w formacie PDF ]
.c++DyrektywyCzym s¹ dyrektywy? Trudnepytanie, ja nie spotka³em siê z ksi¹¿k¹ do VB która by je opisywa³a (choæw jednym pod-dziale).Mo¿e to dlatego, ¿e w odró¿nieniu od C++ VB posiadajedynie 5 dyrektyw (w tym 4 nale¿¹ do jednej grupy).Wspóln¹ cech¹ dyrektyww C++ i VB jest to, ¿e zaczynaj¹ siê znakiem "#".Od razu kojarzynam siê dyrektywa #include z C++, jest to najczêœciej chyba stosowanadyrektywa, poniewa¿ potrafi do³¹czaæ pliki nag³Ã³wkowe do programu (czyliodpowiedniki modu³Ã³w z VB).Niestety, niema odpowiednika tej dyrektywy w VB.Chwila, jeszcze niewyjaœni³em, czym jest dyrektywa.Otó¿, jest to "komendaprocesora", tylko, ¿e w tym znaczeniu "procesor" towyimaginowane narzêdzie wykonuj¹ce nasz program.Prawid³owe okreœlenieobwieszcza, ¿e dyrektywy to specjalne polecenia przekazywane do kompilatora, któremog¹ go manualnie ustawiæ, lub w zale¿noœci od pewnych predefiniowanychczynników, mog¹ warunkowo deklarowaæ sta³e, zmienne i zewnêtrzne funkcje.Nie zgadzam siê z twierdzeniem Karola Kuczmarskiego, ¿e dyrektyw¹ jest tak¿es³owo kluczowe Option, poniewa¿ jest to komenda Debbugera a nie kompilatora.Dyrektywa pozwala na stworzenie nawet dwóch wersji programów w jednym i zapomoc¹ zmiany jednego parametru "przemieszczaæ" siê miêdzy nimi.Naj³atwiejszym wyjaœnieniem znaczenia dyrektywy, jest to, ¿e stosuj¹c je mo¿emywprowadziæ warunkow¹ kompilacjê kodu, tzn.mo¿emy ustaliæ, ¿e A jest równe1, a dalej Je¿eli A=1 To.a je¿eli 2.itd.W tedy, gdy bêdziemymanipulowaæ deklaracj¹ A, to bêdziemy mogli kompilowaæ kolejne czêœciprogramu, i to tylko te, których wykonanie jest uzale¿nione od wartoœci A, któraw³aœnie zezwala na ich wykonanie.Brzmi to trochê zawile, ale zaraz poka¿ê przyk³ad wykorzystania dyrektyw, as¹ nimi:#Const#If#ElseIf#Else#End IfW module:#ConstWersjaTestowa = True#If WersjaTestowa Then [deklaracje dla wersji testowej]#Else [deklaracje dla wersjinormalnej]#End IfInnym przyk³adem,mo¿e byæ u¿ycie dyrektyw, dla okreœlenia deklaracji dla systemów 16 i 32bitowych, przy u¿yciu predefiniowanych sta³ych Win32 i Win16, w module:#IfWin32 Then [deklaracjedla 32 bitowej wersji Windows]#ElseIf Win16Then [deklaracjedla 16 bitowej wersji Windows]#Else [deklaracjedla nieznanej wersji Windows]#End IfW obu przypadkach kompilacjazostanie przeprowadzona dla tych fragmentów kodu, które siê zgadzaj¹ zwarunkiem, albo wersji testowej (lub nie) albo wersji systemu operacyjnego na którymprzeprowadzono kompilacjê.Dlaczego powinniœmy w takich przypadkach stosowaæ dyrektywy a nie zwyk³einstrukcje If lub Const? Co do Const, to w³aœciwie mo¿emy stosowaæ t¹deklaracjê lub odpowiednik w dyrektywie i nie robi to a¿ tak wielkiej ró¿nicy,zaœ instrukcjê If mo¿emy stosowaæ jedynie w funkcjach, ale jej odpowiednik(jak i ca³ej ga³êzi If) w dyrektywie mo¿e byæ stosowany w modu³ach wsekcji General, czyli w deklaracjach.Marcin Porêbski ( Doogie )
[ Pobierz całość w formacie PDF ]