Возможно, это дубликат, но я прошу прощения за это.
Допустим, у меня есть это struct
:
struct foo
{
int a;
int b;
int c;
};
1. Если объект типа struct foo
объявлен таким образом, что он имеет автоматическую продолжительность хранения и без инициализаторов, гарантируется ли, что все его члены будут принудительно инициализированы в ноль
{
// other stuff
struct foo bar;
// other stuff
}
2. Если объект типа struct foo
объявлен таким образом, что он имеет автоматическую продолжительность хранения и с некоторыми инициализаторами, гарантируется ли, что члены, которые не были явно инициализированы , будет сила инициализирована до нуля?
{
// other stuff
struct foo bar = {.a = 1};
// other stuff
}
3. Если объект типа struct foo
объявлен таким образом, что он имеет автоматическую продолжительность хранения и с помощью выражения составной литерал , гарантируется ли, что члены, которые не являются явно инициализирован, будет инициализирован силой до нуля?
{
// other stuff
func((struct foo){.a = 1});
// other stuff
}
Любые ссылки на стандартные C очень ценятся! Спасибо!