当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 当我们进行软件开发时,如果代码比较少,我们可以很容易的掌握、了解程序的执行情况,但是当代码超过数千行,特别是达到上万行的时候,我们就很难准确掌握程序的流程,在这种情况下,进行代码跟踪是很重要的一件事情。
 

 

 ·book    »显示摘要«
    摘要: 《learning standard c++ as a new language》《将标准c++视为一个新语言》 《thinking in c++》 《c++ 编程想》 《the c++ programming language》《inside the c++ object model》《c++java/j2me/code/ target=_blank>程序设计语言》《深度探索c++对象模型......
    摘要: 测试程序2 #include <iostream.h> #include <timer.h> void sum4() { int j = 0; for (unsigned i = 1; i < 630001;) { j += i++; j += i++; j += i++; j += i++; } } voi......


读《Efficient C++》疑惑

    当我们进行软件开发时,如果代码比较少,我们可以很容易的掌握.了解程序的执行情况,但是当代码超过数千行,特别是达到上万行的时候,我们就很难准确掌握程序的流程,在这种情况下,进行代码跟踪是很重要的一件事情.

    最极端的情况就是通过#ifdef开关,彻底消除性能开销,但是要像打开/关闭跟踪,必须重新编译,显然程序的最终用户无法这么做.所以只有通过动态的与程序通信来进行跟踪控制. 【程序编程相关:Eric Raymond对于几大开发语言

    代码跟踪技术,对于大多数程序员来讲,就是定义一个比较简单的trace类,将程序的信息进行输出,一般是在程序的入口写一条信息,在程序的出口写一条信息,虽然这是以时间性能为代价,但是它有助于我们在不使用调试器的情况下找到问题所在. 【推荐阅读:VC中基于CEditView的打印和打印

    class timer 【扩展信息:CUJ:高效使用标准库:STL中的una

    首先,为了能够获得程序执行时间,我们先自己定义一个简单的测试性能的类,名字就叫做timer,实现如下:

    {

    public:

       timer():start(clock()) {}

       ~timer() { cout<<"the time is :"<<clock()-start<<endl; }

    private:

       clock_t start;

    };

    接下来,我们就要定义一个简单的跟踪类trace,初步实现如下:

    class trace

    {

    public:

       trace(const string& name);

       ~trace();

       static bool trace_active;

    private:

       string thename;

    };

    bool trace::trace_active=false;


...   下一页
 ·形形色色的自定义消息(下)    »显示摘要«
    摘要: 在前面,我们讨论了自身类中消息的传递方法和成组的消息传递,接下来的问题就是如何向不同的类中传递消息。其实在《解析vc++6中的指针 》中,我们讨论了如何在不同的类中获取其他类的指针的方法,,我们借用这种获取指针的方法就可以轻松的随心所欲的在各个类中传递消息了。 首先,定义消息的方式和我们在上面所说的是一样的(例如在框架类中向视图类发送消息): (1)在视图类.cpp中定义消息值: #defin......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE