C queries

S

soniya_ahuja

Guest
Queries in CVai kāds lūdzu man pateikt, kādas ir priekšrocības un trūkumi makro?Es arī atrodas zināt, galvenā atšķirība starp malloc un calloc.

Vēl viens jautājums --

Vai Jūs definētu funkciju, var būt nenoteikts parametrus, kā izejvielas?

Paldies
Sveicieni
Soniya

 
Tagad es varu tev atbildēt pēdējo jautājumu.
Mēs varam definēt funkciju, ir nenoteikts parametri kā priekšnodokli.
par šo problēmu mēs varam izmantot stdarg makro, kas definēti stdarg.h galvas failu.Uz šo fails ir definēts tips va_list un 3 macros - va_start, va_arg, va_end.mēs varam atzīt varibale par va_list veidu, kā arī ar trim makro piekļuves parametrus.

/ *
** Aprēķiniet vidējo norādīto vērtību skaits.
* /

# include <stdarg.h>

peldēt
average (int n_values, ...)
(
va_list var_arg;
int skaits;
float summa = 0;

/ *
** Sagatavot piekļūt mainīgo argumentus.
* /
va_start (var_arg, n_values);

/ *
** Pievienot vērtības no mainīgā argumentu sarakstā.
* /
for (count = 0; skaits <n_values, count = 1) (
summa = va_arg (var_arg, int);
)

/ *
** Gatavs pārstrādei mainīgo virknes.
* /
va_end (var_arg);

atgriezties summa / n_values;
)visu jūs varat atsaukties uz <pointers par c> by Kenneth A. smaka nodaļas 7.6.

(piedod mana sliktā angļu valodā)

 
malloc piešķir bloka izmēru no atmiņas.Programma ir skaidri atļauts piešķirt atmiņā, kāds ir vajadzīgs, ko tas attiecas.

Par veiksmes malloc atgriež rādītāju uz jauna sadalītas atmiņas bloks

Calloc ir līdzīgs malloc drīzāk ir nepieciešams vēl viens arguments n_items, kas tiek reizināta ar otro argumentu size_t, kas ir lielums, kas piešķir un sadala bloka izmērs n_items * izmēru.

Tā arī initializes visas vietas uz 0, kas nav izdarīts ar malloc.

Piezīme: calloc var izmantot, piešķirot izmēru līdz pat 64K, sadales pēc 64K, jūs izmantot farcalloc.

 

Welcome to EDABoard.com

Sponsor

Back
Top