只要结构的存储类不是“静态”,'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);
}
欣赏,如果你提出一些见解。