C 比较运算符优先级
你好,我有一个方法叫做
int 比较(char op1, char op2)
该方法将根据比较结果返回 1、-1 或 0
。 (如果 op1 < op2,则为 1)。
我需要比较以下操作:
- subtraction
* multiplication
/ division
^ exponentiation
% remainder
我已经考虑过使用枚举,例如:
enum ops{
'+'=1, '-'=1, '*'=2, '/'=2, '^', '%'
}var;
但这无法编译。有人可以帮忙吗?
Hi there i have a method called
int compare(char op1, char op2)
the method will return 1, -1 or 0
depending on the result of the comparison. (1 if op1 < op2).
I need to compare the following operations:
- subtraction
* multiplication
/ division
^ exponentiation
% remainder
I have considered using an enum such as:
enum ops{
'+'=1, '-'=1, '*'=2, '/'=2, '^', '%'
}var;
but this doesn't compile. Can anyone lend a hand?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您不能使用字符作为枚举的键,您应该执行以下操作:
You can't use characters as keys for the enum, you should do something like:
枚举必须是标识符名称,而不是字符。我建议将它们命名为
PLUS
、MINUS
等(另外,为什么%
的优先级高于^
? 事实上的标准是给予%
与*
和/
相同的优先级。)enums have to be identifier names, not characters. I suggest naming them
PLUS
,MINUS
, etc. (Also, why would%
have higher precedence than^
? The de facto standard is to give%
the same precedence as*
and/
.)