首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么开关语句不能应用于字符串?

为什么开关语句不能应用于字符串?
EN

Stack Overflow用户
提问于 2018-03-22 10:51:16
回答 2查看 0关注 0票数 0
int main()
{
    switch(std::string("raj")) //Compilation error - switch expression of type illegal 
    {
    case"sda":
    }

}
EN

Stack Overflow用户

发布于 2018-03-22 18:57:34

原因与类型系统有关。C / C ++并不真正支持字符串作为一种类型。它确实支持一个常量字符数组的概念,但它并不完全理解字符串的概念。

为了生成switch语句的代码,编译器必须理解两个值相等意味着什么。对于像int和枚举这样的项目,这是一个微不足道的比较。但编译器应如何比较2个字符串值?区分大小写,不敏感,文化意识等......如果没有对字符串的完整意识,就无法准确回答。

另外,C / C ++开关语句通常生成为分支表。为字符串样式开关生成分支表并不容易。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档