结构中整数的默认值

时间:2011-09-27 13:18:29

标签: c

我无法弄清楚如何在结构中设置整数的默认值。例如

 typedef struct {
        char breed[40];
        char coatColor[40];
        int maxAge = 20;
    } Cat;

上面的代码给我一个执行错误 - 预期';'在声明清单的末尾

5 个答案:

答案 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
};
相关问题