I clear structs using a template; saves copying and screwing up the length:
template <class C> SPL_INLINE_FORCE void Zero(C &c) { memset(&c, 0, sizeof(c)); }
struct tm tm_struct;
Zero(tm_struct);
template <class C> SPL_INLINE_FORCE void Zero(C &c) { memset(&c, 0, sizeof(c)); }
struct tm tm_struct;
Zero(tm_struct);
struct tm tm_struct = { 0, }; struct tm tm_struct = { }; struct foo { char bar[3]; };
These declarations are equivalent: struct foo f1 = { 0, };
struct foo f2 = { { 0, } };