KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

[M] Prelude to K.O. (4)

[ 23454 查看 / 45 回复 ]

回复:[M] Prelude to K.O. (4)

14楼的程序略作改动就可以在1990年的Microsoft Quick C 2.51上编译通过,说明这个扩展并不是从Delphi学来的。
void main()
{
    int a=123;
        asm
        {
                jmp next_
        }

        a++

        asm
        {
next_:
                nop
        }
}
此外Intel,DigtalMars的C++编译器也支持这种用法,但Borland C++不支持,而GCC的汇编语法就和Intel系的汇编语法都不一样。

C++的typedef可以提供类似Object Pascal开域语句的功能,用它来简化复杂类型是常见的手法:
    struct StructA
    {
        struct StructB
        {
            struct StructC
            {
                struct StructD
                {
                    int id;
                }sd;
            }sc;
        }sb;
    };

    StructA sa;
    typedef StructA::StructB::StructC::StructD StructD;
    StructD& psd = sa.sb.sc.sd;
    psd.id=1;

另外现在C++的编程思想是,能用reference的地方不用pointer;能用template代替virtual function的时候不用virtual function,至于模版怎么用,建议参考Loki和Boost.Spirit这两个library。
虽然C++代码在Size方面不是很好,但Speed不会比C和汇编差。
本主题由 管理员 深海蓝空 于 2007/5/17 13:35:24 执行 设置精华/取消 操作
分享 转发
KEYFC第二届版杀 - 川澄 舞
TOP

回复:[M] Prelude to K.O. (4)

原帖由 LOVEHINA-AVC 于 2007-5-18 11:38:00 发表

虽然C++代码在Size方面不是很好,但Speed不会比C和汇编差


跟C比的话区别的确是不太大的,慢也只是慢在SIZE上,不过跟ASM比就有点说不过去了。让你这么想的原因大概是没有什么人会去优化非性能......


我对Intel C++还是比较有信心的,要不谁出个题目,固定算法,你用ASM实现,我用Intel C++,看速度能差多少?
KEYFC第二届版杀 - 川澄 舞
TOP

回复:[M] Prelude to K.O. (4)

M$的最后一个Pascal版本:
ftp://FTP_wdx04:kfckfc@61.129.117.61/QPascal.zip

30%的差距当然算比较大了,但是我认为优化C++代码和调整编译器设置可以把差距缩小到10%以内。
KEYFC第二届版杀 - 川澄 舞
TOP