请问版主,我想实现如下功能 :
int a,b,c;
int result;
result=a*b/c;
因为a*b肯定会超过整形范围,如果在汇编下实现其实很简单:
ldy a
ldd b
ldx c
emuls
edivs
tfr y,d
rts
而在c下面,如果我写成result=a*b/c,则编译结果最后除c时用的地idivs,这肯定的错的,
如果我写成result=(long)a*b/c,编译器就会生成两长整形运算的中间函数,搞了一大堆,倒底怎么写编译器才能生成最简代码?作者: strongchen 时间: 2007-7-3 11:03