我想列举一些运营商,我的代码行是:问题 - 在C
enum operations{+=4,-,%,<,>}
当我试图编译这一行,GCC表示:预期'+'标记之前的标识符
那么,我该如何枚举这些运算符。我们可以为他们使用一些转义字符吗?
我想列举一些运营商,我的代码行是:问题 - 在C
enum operations{+=4,-,%,<,>}
当我试图编译这一行,GCC表示:预期'+'标记之前的标识符
那么,我该如何枚举这些运算符。我们可以为他们使用一些转义字符吗?
最好的办法是这样的:
enum Operations
{
Plus=4,
Minus,
Mod,
LessThan,
MoreThan
}
不,你不能。您需要为它们指定名称,就像您对任何标识符所做的一样:
enum operations
{
PLUS = 4, // +
MINUS, // -
MOD, // %
LESS, // <
GREATER // >
};
枚举是具有定义值的标识符列表。您不能使用+,=,<,>等字符作为标识符的名称。
你需要拼出来的名字,如:
enum Operators
{
Plus,
Equals,
LessThan,
GreaterThan
}
枚举必须是标识符,则不能使用裸符号。所以,
enum operations { inc_by_4, minus, modulus, less_than, greater_than };
会工作。 (我猜你想要表达什么,我可能会离开,但这就是猜测的本质。)
如果你能告诉我们你真正想做什么,我们可能会更好地回答你。
此外,请考虑到,在代码
enum operations{+=4,-,%,<,>}
序列+=
被解析为+ =赋值表达式运算符。这可以通过在+
和=
之间插入一个空格来帮助 - 只有这样会产生另一个编译器错误。
似乎我误读了+ = 4,但后来......我的C显然有点生疏。 ;-)有趣的是,在这几个例子中可以看到各种样式(并且......我当然会在实际的(生产)代码中将它分散到更多的行上,但是Python不会无论如何都有枚举;-)) – 2009-12-26 12:33:09
我不认为你误解了它。 '+ = 4'作为*增加四*是一个完全合理的解释。 – wallyk 2009-12-28 02:05:52