Jika datanya adalah variabel statis atau global, secara default diisi nol, jadi deklarasikan saja myStruct _m;
Jika datanya adalah variabel lokal atau zona yang dialokasikan heap, hapus dengan memset
seperti:
memset(&m, 0, sizeof(myStruct));
Kompiler saat ini (misalnya versi terbaru gcc
) mengoptimalkannya dengan cukup baik dalam praktiknya. Ini hanya berfungsi jika semua nilai nol (termasuk penunjuk nol dan titik mengambang nol) direpresentasikan sebagai semua bit nol, yang benar pada semua platform yang saya ketahui (tetapi standar C mengizinkan implementasi yang salah; saya tidak tahu penerapan seperti itu) .
Anda mungkin dapat membuat kode myStruct m = {};
atau myStruct m = {0};
(meskipun anggota pertama dari myStruct
bukan skalar).
Perasaan saya adalah bahwa menggunakan memset
untuk struktur lokal adalah yang terbaik, dan ini menyampaikan fakta yang lebih baik bahwa pada waktu proses, sesuatu harus dilakukan (sementara biasanya, data global dan statis dapat dipahami sebagai diinisialisasi pada waktu kompilasi, tanpa biaya apa pun pada waktu proses) .
= {};
Namun saya tidak yakin apakah ini valid.