什么是类型代码?

时间:2012-05-12 13:33:25

标签: refactoring terminology

我正在"Refactoring"阅读Martin Fowler

我之前从未见过一个术语“类型代码”。

什么是类型代码?

2 个答案:

答案 0 :(得分:3)

可以出现类型代码的一个上下文在C中,带有union类型:

typedef enum Type { T_INT, T_FLOAT, T_DOUBLE, T_LONG } Type;

typedef struct Datum
{
    Type type;
    union
    {
        int     i;
        float   f;
        long    l;
        double  d;
    } u;
} Datum;

这导致代码如下:

Datum v;

switch (v.type)
{
case T_INT:
    int_processing(v.u.i);
    break;
case T_FLOAT:
    float_processing(v.u.f);
    break;
case T_DOUBLE:
    double_processing(v.u.d);
    break;
}

现在,是否故意忽略了交换机中的T_LONG?最近是否添加了此交换机没有得到必要的更新?

当你得到很多这样的代码,并且你需要添加T_UNSIGNED时,你必须找到很多地方来纠正。使用C,您没有像“创建表示类型的类”这样简单的解决方案。它可以完成,但与使用更多面向对象的语言相比,需要花费更多的精力。

但是,术语“类型代码”指的是示例中的Type类型。

答案 1 :(得分:0)

类型代码是指出于某种目的而想要拥有自己的有限类型,并且作为解决方法,创建一组数字或字符串常量,它们代表“类型”的所有可能值。