gpt4 book ai didi

c++ - C++ switch 仅适用于整数类型的基本原理是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:22:45 25 4
gpt4 key购买 nike

<分区>

我觉得 C++ 应该允许 switch() 处理任何可以比较的类型,而不仅仅是整数类型。这似乎很奇怪:

switch(myEnum)
{
case myEnumValue1:
... break;
case myEnumValue1:
... break;
}

在语义上等同于:

if(myEnum == myEnumValue1)
...
else if(myEnum == myEnumValue2)
...

但这只适用于整数类型。为什么?这样限制的目的是什么?

我知道编译器为 switch 生成的代码可能只与整数或寄存器大小的类型兼容,但这些类型的东西通常是开发人员决定的黑盒。这些东西通常是从我们身上抽象出来的。如果跳转表更好,编译器应该生成一个。如果需要典型的 if/else 算法,那就这样吧。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com