同一类事物,不同数据类型

可以用结构来模拟现实世界中错综复杂的事物,但有些数据不止一种数据类型:

同一类事物,不同数据类型 - 图1

假如想记录某样东西的“量”,既可以用个数,也可以用重量,或者用容积。所以大可在一个结构中创建多个字段:

  1. typedef struct {
  2. ...
  3. short count;
  4. float weight;
  5. float volume;
  6. ...
  7. } fruit;

这不是好主意,原因有以下几点:

  • 结构在存储器中占了更多空间。

  • 用户可能设置多个值。

  • 没有叫“量”的字段。

要是能这样就好了:定义一种叫“量”的数据类型,然后根据特定的数据决定要保存个数、重量还是容积。

在C语言中,可以用联合做到这点。