[讨论] 关于C语言中(LONG)的用法?

houhou   2006-12-29 13:37 楼主

在使用TI提供的例程中我们经常会看到使用强制类型转换的语句(LONG),例如下面的程序时对事件管理器定时器1的周期寄存器进行配置,我们在TI的例程中看到如下描述:

        int  m_period;
        long tmp;

        tmp = (long)(p->n_period*p->Mfunc_p);Mfunc_p=7FFF
        m_period = (int)(tmp>>16) + (int)(p->n_period>>1);
        EvaRegs.T1PR = m_period;

在上面程序中p->n_period*p->Mfunc_p已经溢出,后经LONG强制转换以后,高十六位就变成FFFF,不知这样做的目的是什么原因,同时从表面看起来好像这段程序时给p->n_period*除了一个2,不知这样做有什么意义?请高手指教!谢谢!

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复