C søk

S

soniya_ahuja

Guest
Spørringer i CKan noen vennligst fortelle meg hva er fordelene og ulempene med makroer?Jeg vil også ligge å kjenne den største forskjellen mellom malloc og calloc.

Ett spørsmål til --

Kan du definere en funksjon som kan ha ubestemt parametre som innganger?

Takk
Hilsen
Soniya

 
Nå kan jeg svare deg det siste spørsmålet.
Vi kan definere en funksjon som har ubestemt parametere som input.
for dette problemet kan vi bruke stdarg makroer som definert i stdarg.h hodet filen.Dette leder filen har definert en type va_list og 3 makroer - va_start, va_arg, va_end.vi kan erklære et varibale av va_list type, og med tre makroer for å få tilgang parametrene.

/ *
** Beregn gjennomsnittet av det angitte antall verdier.
* /

# include <stdarg.h>

float
gjennomsnittlig (int n_values, ...)
(
va_list var_arg;
int count;
float sum = 0;

/ *
** Forberede å få tilgang til variable argumenter.
* /
va_start (var_arg, n_values);

/ *
** Legg verdiene fra variabelen argumentet listen.
* /
for (teller = 0; count <n_values; count = 1) (
sum = va_arg (var_arg, int);
)

/ *
** Ferdig behandling variable argumenter.
* /
va_end (var_arg);

return sum / n_values;
)Alt dette kan du referere til <pointers på c> av Kenneth A. klatrar kapittel 7.6.

(forgive my poor english)

 
malloc tildeler en blokk av størrelse angitt fra minnet.Et program er klart lov til å allokere minne som det er behov for det.

På suksess malloc returnerer en peker til den nylig tildelte minnet blokk

Calloc ligner malloc heller det tar enda et argument n_items som er multiplisert med de andre argumentet size_t som er den størrelsen å allokere og tildeler en blokk av størrelse n_items * størrelse.

Det initialiseres også alle steder til 0 som ikke er gjort av malloc.

Merk: calloc kan benyttes for tildeling av størrelse opp til 64K, for tildeling utover 64K, har du bruke farcalloc.

 

Welcome to EDABoard.com

Sponsor

Back
Top