Я попытался это сделать и прочитал:
- Почему нельзя назначать массивы того же типа и размера?
- Назначение массивов
- Назначить массив в struct в c
Но все они указывают на очевидность: вы не можете назначать массивы, потому что стандарт так говорит. Это здорово и все, но я хочу знать, почему стандарт не включает поддержку назначения массивов. В стандартном комитете подробно обсуждаются вещи, и я был бы удивлен, если бы они никогда не обсуждали возможность назначения массивов. Предполагая, что они обсудили это, у них должно быть некоторое обоснование того, что нельзя назначать массивы.
Я имею в виду, мы можем поместить массив в структуру и назначить структуре просто отлично:
struct wrapper
{
int array[2];
};
struct wrapper a = {{1, 2}};
struct wrapper b = {{3, 4}};
a = b; // legal
Но использование массива напрямую запрещено, хотя оно эффективно выполняет одно и то же:
int a[2] = {1, 2};
int b[2] = {3, 4};
a = b; // Not legal
Каково стандартное обоснование комитета для запрещения назначения массивов?