Статические объекты без явного инициализатора инициализируются нулем при запуске. Независимо от того, явно ли вы инициализировали объект 0
или нет, это не повлияет на производительность, так как компилятор обычно инициализирует все нулевые объекты за один раз до main
.
// File scope
// Same code is likely to be generated for the two objects initialization
int bla1;
int bla2 = 0;
С другой стороны, если вместо инициализации назначить 0
, это может иметь значение, поскольку компилятор не сможет определить, какое значение было предыдущим для объекта.
void init(void)
{
bla1 = 0;
bla2 = 0;
}