Veriler statik veya global bir değişkense, varsayılan olarak sıfır doldurulur, bu nedenle sadece beyan edin myStruct _m;
Veriler yerel bir değişkense veya yığın tahsisli bir bölgeyse, aşağıdaki memset
gibi temizleyin :
memset(&m, 0, sizeof(myStruct));
Mevcut derleyiciler (örn. Son sürümleri gcc
) bunu pratikte oldukça iyi optimize eder. Bu, yalnızca tüm sıfır değerleri (boş işaretçiler ve kayan nokta sıfır dahil) tüm sıfır bitler olarak temsil edilirse çalışır, bu da bildiğim tüm platformlarda doğrudur (ancak C standardı bunun yanlış olduğu uygulamalara izin verir; Böyle bir uygulama bilmiyorum) .
Belki kodlayabilirsin myStruct m = {};
veya myStruct m = {0};
(ilk üyesi myStruct
skaler olmasa bile ).
Benim hissim, memset
yerel yapılar için kullanmanın en iyisi olduğu ve çalışma zamanında bir şeyin yapılması gerektiği gerçeğini daha iyi iletiyor (oysa genellikle, genel ve statik veriler, çalışma zamanında herhangi bir maliyet olmaksızın derleme zamanında başlatılmış olarak anlaşılabilir) .
= {};
Ancak bunun geçerli olup olmadığından emin değilim.