只要把“鱼”给函数就行了
现在,你只要把新的自定义数据传给函数就行了,而不必传递一大批零散的数据。
/* 打印目录项 */
void catalog(struct fish f)
{
...
}
/* 打印贴在水缸上的标签 */
void label(struct fish f)
{
...
}
是不是简单多了?现在函数只需接收一条数据,而且调用函数的代码也更易读了:
struct fish snappy = {"Snappy", "Piranha", 69, 4};
catalog(snappy);
label(snappy);
以上便是定义自定义数据类型的方法,但怎么才能使用它们呢?函数如何读取结构中保存的某条数据呢?
鱼的好处
把数据放在结构中传递有一个好处,就是修改结构的内容时,不必修改使用它的函数。比如要在
fish
中多加一个字段:
- struct fish {
- const char name;
- const char species;
- int teeth;
- int age;
- int favorite_music;
- };
catalog()
和label()
知道有人会给它们一条fish
,但却不知道fish
中现在有了更多的数据,它们也不关心,只要fish
有它们需要的所有字段就行了。这就意味着,使用结构,不但代码更好读,而且能够更好地应对变化。