这使用的是 跳转表 机制。
欲知详情,可查阅关键字 跳转表。C 的switch不是个语法糖,只是个触发跳转表结构的关键字罢了。
至于C的switch为什么不支持非纯量类型,也同样是因为非纯量类型没法创建跳转表,最终只是个语法糖而已,并不能提升效率,所以不如直接用if else。