• 调试帮助


    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__

  • 相关阅读:
    九度oj 题目1051:数字阶梯求和
    九度oj 题目1472:求两个多项式的和
    九度oj 题目1173:查找
    九度oj 题目1447:最短路
    九度oj 题目1104:整除问题
    [Luogu] 维护序列
    [Luogu] 计算系数
    [Luogu] 聪明的质监员
    [Luogu] Mayan游戏
    [Luogu] 选择客栈
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9493539.html
Copyright © 2020-2023  润新知