Direcția #define (c

Argumentul token-string constă dintr-o serie de jetoane, cum ar fi cuvinte cheie, constante sau operatori complete. Argumentul token-string trebuie separat de argumentul identificatorului de unul sau mai mulți caractere spațiu. Aceste spații nu sunt considerate parte a textului înlocuit, ca toate celelalte spații care urmează ultimului simbol al textului.

Directiva #define fără argumentul token-string elimină aparițiile identificatorului din fișierul sursă. Identificatorul specificat de argumentul identificatorului. rămâne sigur și poate fi verificată utilizând directivele #if definite și #ifdef.

A doua formă de sintaxă definește o macrocomandă, similară unei funcții, cu parametrii. Această formă permite utilizarea unei liste opționale de parametri, care trebuie să fie în paranteze. După definirea unei macrocomenzi, fiecare apariție ulterioară a identificatorului (identificatorul opțional al identificatorului opțional) este înlocuită cu versiunea argumentului token-string. în care, în locul parametrilor formali, argumentele reale sunt înlocuite.

Numele parametrilor formali sunt mapați la șirul token. Pentru a marca locațiile în care sunt înlocuite valorile reale. Numele fiecărui parametru poate fi folosit de mai multe ori în șir de caractere, iar numele pot fi plasate în orice ordine. Numărul de argumente din apel trebuie să corespundă numărului de parametri din definiția macro. Utilizarea corectă a parantezelor va asigura manipularea corectă a argumentelor complexe actuale.

Parametrii formali din listă sunt separați prin virgule. Toate numele din listă trebuie să fie unic, iar lista trebuie să fie închise în paranteze. Între paranteza de deschidere și identificatorul trebuie să existe spații. Pentru directive lungi, dispuse în mai multe linii de cod sursă, folosind concatenare: imediat înainte de o bară oblică linie nouă postare (\). nume zonă a unui parametru oficial se extinde la o nouă linie, final jeton-string.

Dacă macrocomanda este definită în cea de-a doua formă a sintaxei, instanțele de text următoare, urmate de o listă de argumente, indică apelul macro-ului. Argumentele actuale care urmează instanței identificatorului din fișierul sursă sunt mapate la parametrii formali corespunzători din definiția macro. Fiecare parametru formal din string-ul șir de caractere. care este precedat de declarația de creare a unei linii (#), crearea unui caracter (# @) sau introducerea unui simbol (##) sau urmat de un operator ##. se înlocuiește cu argumentul real actual. Înainte de a înlocui directiva privind parametrii formali, toate macrocomenzile din argumentul actual sunt extinse. (Operatorii sunt descriși în secțiunea Operatorii Preprocesor.)

Următoarele exemple de macrocomenzi cu argumente indică a doua formă a sintaxei #define:







Articole similare

Trimiteți-le prietenilor: