gpt4 book ai didi

c - 错误 : case label does not reduce to an integer constant for characters selected from a string literal

转载 作者:太空宇宙 更新时间:2023-11-04 00:43:35 25 4
gpt4 key购买 nike

我在使用 gcc 8.2 编译此代码时遇到此错误:

#define literal "string"
switch(i) {
case literal[0]:
break;
}

在我的示例中,编译器能否将表达式 literal[0] 简化为 's'?

最佳答案

C2011 6.4.8.2p3要求每个 case 标签的表达式都是一个整数常量表达式。整数常量表达式是常量表达式的一个受限子集,在§6.6p6中定义。 .字符串文字不得出现​​在整数常量表达式中。

6.4.8.2p3 是一个“约束”段落,所以这个程序格式错误。

所以你的问题的答案,正如字面上所问的那样,是:编译器可以“string”[0]减少为,但这是不允许的;而是需要拒绝您的程序。

关于c - 错误 : case label does not reduce to an integer constant for characters selected from a string literal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55031246/

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