【发布时间】:2012-01-01 05:54:09
【问题描述】:
typedefs 没有被强类型化的原因是什么?有什么我看不到的好处还是由于向后兼容性?看这个例子:
typedef int Velocity;
void foo(Velocity v) {
//do anything;
}
int main() {
int i=4;
foo(i); //Should result in compile error if strongly typed.
return 0;
}
我不是要求解决方法来获得强类型数据类型,而只是想知道为什么标准不要求 typedefs 是强类型?
谢谢。
【问题讨论】:
-
因为 C 语言是为想要完成任务的人而设计的,而不是为想要思考抽象类型系统的数学之美的人而设计的语言。 (作为一个欣赏这两项活动的人,我不会评判任何一项)。
-
@Stephen Canon:谁说抽象类型系统不能帮助你完成任务?调试因意外误用类型而导致的运行时错误在我的书中当然不算作“完成任务”。
-
@MichaelBorgwardt:我当然没有说他们不能。但是,它们可能被滥用。
标签: c typedef strong-typing