函数为何允许多个参数,却只允许一个返回值

函数为什么允许多个参数,却只允许一个返回值?
函数参数和返回值好像都是通过同样的机制进行的。那么为什么只允许一个返回值呢?
这是C语言的设计,还是各ABI自古以来的传统习俗?

------解决方案--------------------
这个问题与二进制兼容性无关。

为什么需要函数?因为我们需要它的结果,那么我们需要在何处使用函数的结果?在表达式中!函数调用属于后缀表达式,那么多于一个返回值的函数调用对表达式计算有没有意义?没有意义!因为一种具有多种可能结果的表达式会大大增加表达式计算的复杂度,基本上没有实际意义。