我们拥有经过数十年开发的大型 C 代码库。该代码的特点之一是对函数指针和伪继承的大量依赖。习语(如此处讨论的)如下所示:
typedef struct twod_ {
double x, y;
} twod;
typedef struct threed_ {
twod super;
double z;
} threed;
threed *point_3d;
twod *point_2d = (twod *)point3d;
Run Code Online (Sandbox Code Playgroud)
此时point_2d->x和point_3d->x是同一块内存。
我的问题是:
当然,“如果它没坏,就不要修理它”这句格言值得牢记。然而,目前这并没有真正帮助我们,所以我们认为我们可能需要更深入地重构......
谢谢!