关于C语言中assert函数和可变参数介绍

           关于C语言中assert函数和可变参数介绍

             写下这些自己不熟悉的事情,闲暇的时候看看,方便记忆。人在做,天在看,但管学习,莫问前程。

     诊断库

      assert.h支持的诊断库是设计用于辅助调试程序的小型库。他有assert()宏构成,该宏接受整数表达式为参数。

      assert 宏的作用是标识出程序某个条件应为真的关键位置,并在条件为假的时候用assert()语句终止程序。

     使用assert()方式有几个好处,他能自动识别文件,自动识别发生的问题的行号。还有就是不用改变代码就能开启或禁止assert()宏的机制

        #define NDEBUG

  将上面的一行代码放在assert()前面就能禁止宏assert() 。

 

 可变参数

 

   可变参数的头文件是stdarg.h

 使用步骤:

   在函数原型中使用省略号;

  在函数定义中创建一个va_list类型的变量;

  用宏将该变量初始化一个参数列表;

  用宏访问这个参数列表;

  用宏完成清理工作。

 

 

  stdarg.h文件中使用va_starta把参数列表复制到va_list中,访问参数列表里面的内容使用的是va_arg,最后使用va_end完成清理工作,例如释放动态分配的用于存放参数的内存。不提供后退先前参数的办法。

 

 

 另在C99中提供和va_copy将第二个参数复制到第一个参数中。

 

你可能感兴趣的:(c,工作,list,语言)