Argumentele unei funcții din c

Argumente funcționale

argumente de referință

Pentru a stoca argumentele și variabilele locale, se utilizează de obicei o zonă de memorie specială - stiva. Deoarece operațiile cu acesta sunt destul de lente, datele mari sunt mai bine să treacă prin legături sau indicatori, iar pentru variabilele locale se utilizează memorie dinamică.







funcția ca argument

Din moment ce numele unei funcții este ea însăși un pointer. atunci putem defini funcții care să ia alte funcții ca argumente.

argumentele cu atributul const

Ar trebui să ne amintim că prin trecerea argumentelor printr-o referință sau un pointer, oferim șansa de a schimba obiectele din interiorul funcției. În unele cazuri, este necesar, în altele nu. Pentru a împiedica modificarea argumentului, se utilizează atributul const.

valorile implicite

C ++ vă permite să setați argumentele funcției la valorile implicite. Aceste argumente ar trebui să fie la sfârșitul listei. Valoarea poate fi orice expresie de același tip care este valabilă pentru inițializare.







supraîncărcarea funcțiilor

Funcțiile pot fi date cu același nume dacă au un număr diferit de argumente sau diferite tipuri de argumente. Aceasta se numește funcții de supraîncărcare. Uneori împărtășirea supraîncărcării și valori implicite ale argumentului pot duce la un conflict de nume.

Suprasarcina este generată prin generarea unui nume de funcție nou pe baza numărului și a tipurilor de argumente. Fiecare compilator are propriul algoritm de generare a numelor. Prin urmare, atunci când dezvoltăm biblioteci pentru portabilitatea lor, se folosesc numai funcții C. În conformitate cu standardul C, numai numele de subliniere este adăugat la numele funcțiilor. Următoarele sunt numele funcțiilor pe care le-a generat compilatorul MinGw. Puteți căuta nume în fișiere obiect (* .obj sau * .o)

număr variabil de argumente

În C ++, sunt permise funcții cu un număr variabil de argumente. De exemplu, funcția de bibliotecă a imprimării de ieșire a consolei. Pentru a specifica un număr variabil de argumente, utilizați elipsa. Trebuie să existe cel puțin un argument numit, definind de obicei numărul de argumente anonime.

În al doilea rând, pentru majoritatea compilatoarelor, modul de transmitere a argumentelor nu poate fi modificat (adică nu utilizați atributele de funcții cum ar fi __fastcall). Pentru a accesa argumentele fără nume, utilizați macrocomenzile definite în stdarg.h.







Articole similare

Trimiteți-le prietenilor: