我应该在临时内联变量上使用++运算符吗?

用户名

我想知道这个过早且不太重要的事情。我已经写了:

m_playerIndex = ++m_playerIndex % 2 // always either 0 or 1 (int)

为我的国际象棋游戏确保其他玩家在完成刚才的举动之后再进行下一步动作。但是它不是很可读,是吗?

最重要的是,它会将变量递增1,然后在已适配变量上调用模块运算符2,这意味着我有了这个临时变量,我将其分配给m_playerIndex,然后立即将其替换为%2的结果。什么是最有效的?是选项2、1,还是根本没有区别?(我还没有程序可以检查那些东西。)

1)

m_playerIndex = ++m_playerIndex % 2

2)

m_playerIndex = (m_playerIndex + 1) % 2
pn

表达方式

m_playerIndex = (m_playerIndex + 1) % 2

清楚地向读者传达正在发生的事情。此处每项可能的优化都是编译器的工作。

除此之外,出于好奇,请访问https://godbolt.org/,在这里您可以查看和比较为代码创建的汇编程序指令。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

应该在我的自定义>>运算符中调用istream :: clear()吗?

来自分类Dev

我应该在 C# Structures 中声明成员函数时使用“new”运算符吗?

来自分类Dev

'<<-'运算符不能定义变量吗?

来自分类Dev

在Python中使用<>。是<>运算符吗?

来自分类Dev

我应该重载赋值运算符C ++吗?

来自分类Dev

我应该在本地定义的IntPtr变量上使用CloseHandle吗?

来自分类Dev

可以使用按位运算符代替逻辑运算符(例如OR)吗

来自分类Dev

我应该在Java EE中将注入的变量声明为临时变量吗?

来自分类Dev

我在使用三元运算符吗?

来自分类Dev

我可以在Typescript中创建class []运算符吗

来自分类Dev

我可以在C ++中重写运算符吗?

来自分类Dev

我可以将管道运算符用作OR语句吗?

来自分类Dev

我应该内联运算符==和!=,以防运算符!=()使用运算符==()的否定

来自分类Dev

我应该内联运算符==和!=,以防运算符!=()使用运算符==()的否定

来自分类Dev

使用条件运算符的奇怪Java行为。是虫子吗?

来自分类Dev

可以使用任意字符作为运算符吗?

来自分类Dev

使用.get()和->运算符之间有区别吗?

来自分类Dev

使用条件运算符的奇怪Java行为。是虫子吗?

来自分类Dev

使用>>运算符

来自分类Dev

SQL:我可以将“<”运算符的字符串值转换为 where 子句中的运算符吗?

来自分类Dev

使用逻辑运算符简化嵌套条件:逻辑运算符不起作用吗?

来自分类Dev

逻辑运算符可以与PHP中的三元运算符一起使用吗

来自分类Dev

当没有非const运算符重载时,非const对象会使用const运算符吗?

来自分类Dev

我应该避免使用管道运算符对程序包进行编程吗?

来自分类Dev

我可以/应该使用隐式运算符而不是重写ToString吗?

来自分类Dev

我应该使用点(。)或箭头(->)运算符访问C ++中的指针成员吗?

来自分类Dev

我不能在分配给变量的集合上使用包含运算符吗?

来自分类Dev

我可以内联这些流运算符序列吗?

来自分类Dev

网格运算符上的最小运算符

Related 相关文章

  1. 1

    应该在我的自定义>>运算符中调用istream :: clear()吗?

  2. 2

    我应该在 C# Structures 中声明成员函数时使用“new”运算符吗?

  3. 3

    '<<-'运算符不能定义变量吗?

  4. 4

    在Python中使用<>。是<>运算符吗?

  5. 5

    我应该重载赋值运算符C ++吗?

  6. 6

    我应该在本地定义的IntPtr变量上使用CloseHandle吗?

  7. 7

    可以使用按位运算符代替逻辑运算符(例如OR)吗

  8. 8

    我应该在Java EE中将注入的变量声明为临时变量吗?

  9. 9

    我在使用三元运算符吗?

  10. 10

    我可以在Typescript中创建class []运算符吗

  11. 11

    我可以在C ++中重写运算符吗?

  12. 12

    我可以将管道运算符用作OR语句吗?

  13. 13

    我应该内联运算符==和!=,以防运算符!=()使用运算符==()的否定

  14. 14

    我应该内联运算符==和!=,以防运算符!=()使用运算符==()的否定

  15. 15

    使用条件运算符的奇怪Java行为。是虫子吗?

  16. 16

    可以使用任意字符作为运算符吗?

  17. 17

    使用.get()和->运算符之间有区别吗?

  18. 18

    使用条件运算符的奇怪Java行为。是虫子吗?

  19. 19

    使用>>运算符

  20. 20

    SQL:我可以将“<”运算符的字符串值转换为 where 子句中的运算符吗?

  21. 21

    使用逻辑运算符简化嵌套条件:逻辑运算符不起作用吗?

  22. 22

    逻辑运算符可以与PHP中的三元运算符一起使用吗

  23. 23

    当没有非const运算符重载时,非const对象会使用const运算符吗?

  24. 24

    我应该避免使用管道运算符对程序包进行编程吗?

  25. 25

    我可以/应该使用隐式运算符而不是重写ToString吗?

  26. 26

    我应该使用点(。)或箭头(->)运算符访问C ++中的指针成员吗?

  27. 27

    我不能在分配给变量的集合上使用包含运算符吗?

  28. 28

    我可以内联这些流运算符序列吗?

  29. 29

    网格运算符上的最小运算符

热门标签

归档