我无法弄清楚如何在结构中设置整数的默认值。例如
typedef struct {
char breed[40];
char coatColor[40];
int maxAge = 20;
} Cat;
上面的代码给我一个执行错误 - 预期';'在声明清单的末尾
答案 0 :(得分:8)
你不能在C中指定默认值。你可能想要的是一个'init'样式函数,你的struct的用户应该首先调用它:
struct Cat c;
Cat_init(&c);
// etc.
答案 1 :(得分:7)
在C中,您无法在结构中提供默认值。这种语法不存在。
答案 2 :(得分:2)
简洁地说,你做不到。它根本不是C的特征。
答案 3 :(得分:0)
结构是一种类型。类型(所有类型)没有默认值。
// THIS DOES NOT WORK
typedef char = 'R' chardefault;
chardefault ch; // ch contains 'R'?
您可以在初始化
中为对象赋值char ch = 'R'; // OK
struct whatever obj = {0}; // assign `0` (of the correct type) to all members of struct whatever, recursively if needed
答案 4 :(得分:0)
你可以初始化但是对于字符串来说这是不实际的(更好地使用你的自定义函数)
typedef struct {
char breed[40];
char coatColor[40];
int maxAge;
} Cat;
Cat c = {"here39characters40404040404044040404040",
"here39characters40404040404044040404040",
19
};