我找不到这样做的方法,但是是否有 GCC/LLVM 的编译器标志,我可以在其中得到它来警告我:
typedef float distance_feet_t;
typedef float distance_meters_t;
void shouldWarnMe ( void )
{
distance_feet_t feet = 10.0f;
distance_meters_t meters = 20.0f;
/* this should generate a warning */
distance_meters_t total = meters + feet;
}
本质上,我想重新定义变量类型,这样如果我开始混合它们,编译器会警告我缺少演员表。
我试过 -Wall: 没有警告。
有一些方法可以在不使用 typedef 的情况下解决这个问题。但是问题是,有没有一种方法可以使用所描述的 typedef 来做到这一点?