C užklausos

S

soniya_ahuja

Guest
Užklausos CAr kas nors pasakyti, kokie yra privalumai ir trūkumai makrokomandas?Aš taip pat tenka žinoti pagrindinis skirtumas tarp malloc ir calloc.

Dar vienas klausimas --

Ar galite apibrėžti funkciją, kuri gali turėti neribotą parametrus, kaip sąnaudų?

Ačiū
Linkėjimai
Rytas

 
Dabar galiu jums atsakyti į paskutinį klausimą.
Mes galime apibrėžti funkciją, kuri turi neribotą parametrus, kaip sąnaudų.
šią problemą, galime naudoti stdarg makrokomandas, kurios apibrėžtos stdarg.h galvos failas.tai galva failas apibrėžta tipas va_list ir 3 makrokomandas - va_start, va_arg, va_end.mes galime paskelbti ir va_list tipas varibale, ir su trimis makrokomandas prieigos parametrus.

/ *
** Apskaičiuoja nurodytą skaičių reikšmių vidurkis.
*

# include <stdarg.h>

plūduriuoti
vidurkis (int n_values, ...)
(
va_list var_arg;
int count;
float suma = 0;

/ *
** Pasiruoškite susipažinti kintamasis argumentai.
*
va_start (var_arg, n_values);

/ *
** Pridėti reikšmes kintamasis argumentų sąrašą.
*
for (count = 0; count <n_values; count = 1) (
suma = va_arg (var_arg, int);
)

/ *
** Pasirengusios kintamasis argumentai.
*
va_end (var_arg);

return suma / n_values;
)visa tai Jūs galite kreiptis į <pointers dėl c> Kenneth A. tvaikas skyriuje 7.6.

(atleisk man prasta anglų kalba)

 
malloc skiria dydžio bloko nurodyta iš atminties.Programa yra aiškiai leidžiama paskirstyti atmintį, kaip tai, kas reikalinga jos.

Dėl sėkmės malloc grąžina rodyklę į naujai skiriamos atminties blokas

Calloc yra panašus į malloc, o ji mano dar vienas argumentas n_items yra dauginami iš antro argumento size_t kurios dydį paskirstyti ir paskirsto dydžio n_items * dydžio blokas.

Jis taip pat inicijuoja visas vietas, 0, kuris nėra padaryta malloc.

Pastaba: calloc gali būti naudojamos paskirstymo dydis upto 64K, paskirstymo po 64K, jūs naudotis farcalloc.

 

Welcome to EDABoard.com

Sponsor

Back
Top