C queries

S

soniya_ahuja

Guest
Queries in CCan anyone tolong katakan padaku apa keuntungan dan kerugian dari macro?Saya juga berbohong untuk mengetahui perbedaan utama antara malloc dan calloc.

Satu pertanyaan lagi --

Dapatkah Anda mendefinisikan sebuah fungsi yang dapat memiliki parameter tidak terbatas sebagai masukan?

Terima kasih
Salam
Soniya

 
Sekarang saya dapat menjawab pertanyaan terakhir Anda.
Kita dapat mendefinisikan sebuah fungsi yang memiliki parameter tidak terbatas sebagai masukan.
untuk masalah ini kita dapat menggunakan stdarg makro yang didefinisikan dalam berkas kepala stdarg.h.file kepala ini telah menetapkan jenis dan 3 macro va_list - va_start, va_arg, va_end.kita dapat menyatakan varibale dari va_list jenis, dan dengan tiga makro untuk mengakses parameter.

/ *
** Hitunglah rata-rata dari jumlah nilai tertentu.
* /

# include <stdarg.h>

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

/ *
** Bersiaplah untuk mengakses variabel argumen.
* /
va_start (var_arg, n_values);

/ *
** Tambahkan nilai-nilai dari variabel daftar argumen.
* /
for (count = 0; count <n_values; count = 1) (
sum = va_arg (var_arg, int);
)

/ *
** Selesai pengolahan argumen variabel.
* /
va_end (var_arg);

return sum / n_values;
)semua ini Anda dapat merujuk pada <pointers pada c> oleh kenneth A. Reek bab 7.6.

(maafkan saya yang miskin inggris)

 
malloc mengalokasikan ukuran blok dari memori tertentu.Suatu program merupakan jelas diperbolehkan untuk mengalokasikan memori seperti apa yang dibutuhkan oleh itu.

Malloc sukses mengembalikan sebuah pointer ke blok memori baru dialokasikan

Calloc mirip dengan malloc bukan dibutuhkan satu lagi argumen yang n_items dikalikan dengan size_t argumen kedua yang merupakan ukuran untuk mengalokasikan dan mengalokasikan satu blok berukuran n_items * ukuran.

Ini juga menginisialisasi semua lokasi ke 0 yang tidak dilakukan oleh malloc.

Catatan: calloc dapat digunakan untuk ukuran mengalokasikan upto 64K, untuk alokasi di luar 64K, Anda telah menggunakan farcalloc.

 

Welcome to EDABoard.com

Sponsor

Back
Top