N*p
2 楼
count不是从0开始。不是个像样的C程序员。
F*u
4 楼
应该换行
w*a
8 楼
写count++, 而不是 ++count。 说明不是牛逼人。
l*g
20 楼
早就被 compiler 优化了
还争什么 i++ 和 ++i
还争什么 i++ 和 ++i
d*n
27 楼
不对吧,如果需要返回表达式的值,那i++还是多一个临时变量的,时间和空间消耗都
是有区别的。
如果不需要返回,那倒是可能被compiler优化了,没有区别。
x=(++i):
mov ax, [memoryi]
inc ax
mov [memoryi], ax
mov [memoryx], [memoryi]
另外一个是
x=(i++):
mov [memoryt], [memoryi]
mov ax, [memoryi]
inc ax
mov [memoryi], ax
mov [memoryx], [memoryt]
【在 R***a 的大作中提到】
: 现在的编译器没那么二吧。
: 一看上下文不需要整个表达式的值,直接就忽略啊。
: 就算需要表达式的值
: 那也一个是
: ++i:
: mov ax, [memoryi]
: inc ax
: mov [memoryi], ax
: mov [memoryt] ax
: 另外一个是
是有区别的。
如果不需要返回,那倒是可能被compiler优化了,没有区别。
x=(++i):
mov ax, [memoryi]
inc ax
mov [memoryi], ax
mov [memoryx], [memoryi]
另外一个是
x=(i++):
mov [memoryt], [memoryi]
mov ax, [memoryi]
inc ax
mov [memoryi], ax
mov [memoryx], [memoryt]
【在 R***a 的大作中提到】
: 现在的编译器没那么二吧。
: 一看上下文不需要整个表达式的值,直接就忽略啊。
: 就算需要表达式的值
: 那也一个是
: ++i:
: mov ax, [memoryi]
: inc ax
: mov [memoryi], ax
: mov [memoryt] ax
: 另外一个是
n*d
29 楼
你们太nb了
P*l
30 楼
count定义在for里面看着更舒服
w*a
31 楼
Use vi
Yy500p
Yy500p
T*U
32 楼
从回帖上看,IT牛人过剩啊。
w*u
33 楼
说起汇编,这得看芯片,有些芯片有循环寄存器的,管你i++还是++i,都被优化没了,
连时钟周期都没有。
连时钟周期都没有。
n*y
35 楼
没觉得1楼是笑话,倒是二楼开始一直到楼上都是笑话
R*a
36 楼
按你这个假设指令集可以直接mem->mem
你这个第二个可以直接改写成
mov [memoryx], [memeoryi]
mov ax, [memoryi]
inc ax
mov [memoryi], ax
有必要加个中间变量么?
【在 d*******n 的大作中提到】
: 不对吧,如果需要返回表达式的值,那i++还是多一个临时变量的,时间和空间消耗都
: 是有区别的。
: 如果不需要返回,那倒是可能被compiler优化了,没有区别。
: x=(++i):
: mov ax, [memoryi]
: inc ax
: mov [memoryi], ax
: mov [memoryx], [memoryi]
: 另外一个是
: x=(i++):
你这个第二个可以直接改写成
mov [memoryx], [memeoryi]
mov ax, [memoryi]
inc ax
mov [memoryi], ax
有必要加个中间变量么?
【在 d*******n 的大作中提到】
: 不对吧,如果需要返回表达式的值,那i++还是多一个临时变量的,时间和空间消耗都
: 是有区别的。
: 如果不需要返回,那倒是可能被compiler优化了,没有区别。
: x=(++i):
: mov ax, [memoryi]
: inc ax
: mov [memoryi], ax
: mov [memoryx], [memoryi]
: 另外一个是
: x=(i++):
相关阅读