「C」は、構造体のストレージ クラスが「静的」でない限り、関数内の構造体のメンバーの初期化を許可しているようです。そうしようとすると、次のコンパイル エラーが返されます。
エラー: 初期化要素が定数ではありません
コードスニップ
typedef struct data {
int age;
char *name;
} data_t;
void foo(data_t student)
{
//data_t s1 = student; <--- works
static data_t s1 = student; <--- throws error
printf("%s: s1.age: %d, s1.name: %s\n",__FUNCTION__,s1.age, s1.name);
}
洞察を投げていただければ幸いです。