zoukankan      html  css  js  c++  java
  • 调试帮助

    1、有时我们会用到类似于头文件保护的技术,就是说有些代码在实际开发程序时,用来调试的,但是在程序发布时,就会先屏蔽掉这些代码,也就是说,有选择地执行调试代码。

    2、使用这种技术,用到两种预处理功能:assert和NDEBUG。前者是一种预处理宏,assert(expr),若expr为真,则assert什么都不做,若为假,则assert输出信息并终止程序的执行。其定义在cassert头文件中。预处理变量的名字在程序内必须唯一,由预处理器管理。assert宏常用于“不能发生”的条件。而assert的行为依赖于后者,即若定义了NDEBUG则assert什么也不做,默认情况下,没有定义NDEBUG,也就是说定义一个预处理变量NDEBUG,就能关闭调试状态。这时就能避免运行时检查的开销。

    3、assert只用于那些确实不可能发生的事情,只能作为调试程序的一种辅助手段,而不能用它替代运行时真正的逻辑检查,和程序自身的包含的错误检查。

    4、也可以使用NDEBUG编写自己的条件调试代码。

    5、编译器定义了__func__用来存放函数的名字,预处理器也定义了存放当前行号的整型字面值__LINE__、存放文件名的字符串字面值__FILE__、存放文件编译时间的字符串字面值__TIME__、存放文件编译日期的字符串字面值__DATE__

  • 相关阅读:
    css 伪类
    tornado 作业 简单首页 登录页 个人中心
    tornado 作业 自定义模板 UIMethod以UIModule
    tornado 网页提交内容 展示内容作业
    tornado
    javascript
    廖雪峰官网学习js 数组
    廖雪峰官网学习js 字符串
    廖雪峰官网学习js 数据类型和变量
    协程gevent学习
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9493539.html
Copyright © 2011-2022 走看看