Makrók, függvények és fájlok, cikkek, programozás - programozás C, Delphi, C #
M Akros C nagyon fontos, de a C ++ is sokkal kevésbé használják. Az első szabály számukra: nem használja őket, ha nem muszáj. Mint megjegyezte, szinte minden makro megjeleníti a hiba, vagy a nyelv, illetve a programban. Ha a használni kívánt makrót, kérjük, olvassa el alaposan az elején a vezető a végrehajtását C előfeldolgozó.
P növekedési makró meghatározása a következő:
#define név többi vonalon
Annak neve tyúk fordul jeléül, hogy helyébe a többi vonalon.
miután a bővítés:
elemzi = többi vonal
Azt is meghatározza, M makró paramétereket.
#define mac (a, b) argument1: egy argument2: b
Ha mac P meg kell adni a két paraméter vonalak. Expanzió után mac () helyébe a és b.
expandált = mac (foo bar, yuk yuk)
bővítés után akarata
expandált = argument1: foo bar argument2: yuk yuk
M Akros feldolgozott húrok és C ++ szintaxis nagyon keveset tudnak, és az olyan típusú, C ++ vagy körök - semmi. A fordító látja csak kiterjesztett formája a makró, így a hiba diagnosztizálják a makrót, amikor a makró bővült, de nem akkor, amikor meg van határozva. Ennek eredményeként, vannak furcsa hibaüzeneteket.
Mivel az ilyen makrók is elég:
#define Case szünet; ügy
#define nl <<"\\n"
#define örökre for (;;)
#define MIN (a, b) (((a)<(b))?(a):(b))
Mivel teljesen felesleges makrók:
#define PI 3.141593
#define BEGIN END #define>
De veszélyes makrók példa:
#define négyzet alakú (a) a * a
#define INCR_xx (xx) ++
#define DISP = 4
B Hogy milyen veszélyesek, próbálja elvégezni terjeszkedés a következő példát:
I f akkor kénytelenek vagyunk olyan makrót használni, amikor hivatkozva globális nevek, használja a hatálya felbontás működését. és csatolniuk kell a belépési makró nevét paraméter zárójelben, ahol lehetséges (lásd. a MIN fent).
Ó, testvér figyelmet arra, hogy különbséget bővülésének eredményeként a két makrók:
int a = m1 (1) 2;
int b = m2 (1) 2;
Makrók segítségével, akkor dolgozzon a saját nyelvén. A legvalószínűbb, hogy a többi lesz érthetetlen. Ezen túlmenően, a C előfeldolgozó - egy nagyon egyszerű makró processzor. Amikor megpróbál tenni valamit, nem triviális, azt fogod találni, hogy ezzel lehetetlen vagy rendkívül nehéz.