C语言中枚举类型可以进行自加自减 *** 作吗

C语言中枚举类型可以进行自加自减 *** 作吗,第1张

不可以的。那个相当与一个#define的定义

以下是官方说明

C语言或C++的一种构造类型,它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。

定义:是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内.

Set operators

Operator Operation Operand types Result type Example

+ union set set Set1 + Set2

- difference set set S - T

* intersection set set S * T

<= subset set Boolean Q <= MySet

>= superset set Boolean S1 >= S2

= equality set Boolean S2 = MySet

<>inequality set Boolean MySet <>S1

in membership ordinal, set Boolean A in Set1

用in *** 作符啊。

你的i为enum color类型,在C语言中i++是可以的,在C++中默认是不行的。你在vs2008中的编译是按照C++进行的(C和C++是不同的语言),所以出错。

下面为几种解决办法(不是同时做到,而是任选一种即可):

1. 可以选择C编译器,如GCC。

2. 可以将i j k 定义为int类型。

3. 可以把编译模式设置为C的。

4. 进行额外的强制类型转换,就像你写的那个,i=(enum color)(int(i)+1)

5. 学学C++,。。。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7952624.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存