分享

6.14 使用预处理器进行调试

 renhl252 2014-09-01

■ NDEBUG
    NDEBUG表示不是debug的,在release时会定义。如VC中的release时就会定义宏NDEBUG。

■ 调试时使用的宏
   1.  代码位置和时间信息宏
__FILE__
__LINE__
__TIME__
__DATE__
   2.  断言的预处理宏
assert(X)  当X为真时,什么都不做;当X为假时,报错。
        注意:在release即定义NDEBUG宏时,assert()不做任何事情。
■ 例子


  1. #define NDEBUG //定义NDEBUG

  2. #include<cassert>
  3. #include <iostream>

  4. using namespace std;

  5. int main()
  6. {
  7. #ifndef NDEBUG
  8. cerr << "starting main" << endl;
  9. #endif
  10. // ...
  11. cout << __FILE__ << endl;
  12. cout << __LINE__ << endl;
  13. cout << __TIME__ << endl;
  14. cout << __DATE__  << endl;

  15. assert(1==0); //第1行 定义NDEBUG 词句什么都不做

  16. return 0;
  17. }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多