printf("%d %d %d %d\n", b++, ++b, b++, ++b)打印的汇编解释

 上图左侧是源码,右侧是对应的汇编代码,使用 g++ -S a.cpp 翻译得来。代码运行的结果是:

printf("%d %d %d %d\n", b++, ++b, b++, ++b)打印的汇编解释

 从右侧汇编代码可以看出,printf中表达式的计算是从右往左的,且:

  1.      对于++b的输出,不管它放在printf的哪个位置,调用时使用的都是b的最终值,即4轮自增操作以后的值
  2.      而b++则在每一步计算时先把b保存到新寄存器,再把b+1后的结果赋给b

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-24
  • 2021-04-14
  • 2021-06-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-13
  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
  • 2022-01-05
相关资源
相似解决方案