当前位置:  技术问答>linux和unix

请解释一下:assert()这个函数,详细点 高分相送

    来源: 互联网  发布时间:2015-02-03

    本文导语:  请解释一下:assert()这个函数,详细点  高分相送 | assert()函数是判断表达式,如果表达式的结果为FALSE,则打印出诊断信息,并且退出程序。 assert()函数的声明: void assert( int expression ); asse...

请解释一下:assert()这个函数,详细点  高分相送

|
assert()函数是判断表达式,如果表达式的结果为FALSE,则打印出诊断信息,并且退出程序。

assert()函数的声明:
void assert( int expression );

assert()函数的头文件和OS环境:
 ANSI, Win 95, Win NT 

返回值:


参数:
表达式
结果为0或者非0的表达式(包括指针)

备注:
可以使用NDEBUG宏来打开或者关闭assert()函数。

例子:

/* ASSERT.C: In this program, the analyze_string function uses
 * the assert function to test several conditions related to
 * string and length. If any of the conditions fails, the program
 * prints a message indicating what caused the failure.
 */

#include 
#include 
#include 

void analyze_string( char *string );   /* Prototype */

void main( void )
{
   char  test1[] = "abc", *test2 = NULL, test3[] = "";

   printf ( "Analyzing string '%s'n", test1 );
   analyze_string( test1 );
   printf ( "Analyzing string '%s'n", test2 );
   analyze_string( test2 );
   printf ( "Analyzing string '%s'n", test3 );
   analyze_string( test3 );
}

/* Tests a string to see if it is NULL, */ 
/*   empty, or longer than 0 characters */
void analyze_string( char * string )
{
   assert( string != NULL );        /* Cannot be NULL */
   assert( *string != '' );       /* Cannot be empty */
   assert( strlen( string ) > 2 );  /* Length must exceed 2 */
}

程序结果输出:
Analyzing string 'abc'
Analyzing string '(null)'
Assertion failed: string != NULL, file assert.c, line 24

abnormal program termination

    
 
 

您可能感兴趣的文章:

  • 誰会地震解释的Discovery软件,能教教我吗?高分请教
  • 高手帮忙解释一下Toolkit类。给高分
  • 谁能给我详细的解释一下resin,包括它的功能、用途、安装以及用法。对我有帮助者一定高分相送
  • C++ STL Bitsets构造函数及成员函数解释及代码示例
  • c语言也能重载函数? 怎么解释。unix编程的open函数。
  • 请解释函数strtok()
  • 请教高人来解释一下小弟关于poll()函数的疑惑
  • 江湖救急:谁能帮我解释一下这个函数?
  • 关于getenv库函数,请解释,谢谢
  • 谁能给我解释一下SIGNAL这个函数呀?
  • 哪位兄台能为我解释一下inline函数??
  • 请那位高手详细解释一下wait函数的用法和意义?
  • 谁给解释下这个signal函数
  • 这里放一个signal函数怎么解释(附源码)
  • 哪位大仙能给解释一下uart_insert_char()函数的用法
  • 有谁来解释下waitpid函数中 pid的值为-1和0的区别
  • 哪位高手可以解释一下为什么Linux下的socket函数recv(),不被信号中断掉?
  • 谁能我帮解释解释daemon 函数具体步骤的意思
  • 内核编程遇到回调函数,实在看不明白,哪位高手帮忙看看解释下,跪谢。
  • linux的主函数一般是int main(int argc,char *argv[])麻烦解释
  • struct task_struct * get_current(void)函数的解释--help!!
  • 给详细解释一下可重入函数、线程安全函数、异步信号安全函数
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • CentOS安装Telnet,以root用户登陆Telnet以及CentOS的各种终端解释
  • classpath里的.;到底有什么用?能解释解释吗?
  • 请问java的xml解释器有哪些?怎么能在applet里用这些解释器?
  • 大虾们给我解释解释这个输出问题。这里小弟先谢了。
  • 实在是不能理解,谁能帮我解释解释!
  • 能不能帮我解释解释什么是EJB?
  • 关于"symbol lookup error"问题的诡异现象,高手帮忙解释解释
  • alex 解释器 alexinterpreter
  • 地震解释软件系统 OpendTect
  • Java源代码解释器 Beanshell
  • 这个"."怎么解释?
  • 高手帮忙解释
  • 请详细解释javamail里的“收件人类型”的CC,TO,BCC的意义???
  • linux中/dev下都是些什么文件啊?大侠们谁可以帮我解释一下?
  • 多线程的例子。但是不知道为什么看不懂。唉,笨:(各们帮帮忙了给我解释解释
  • 数字电视CA卡解释模块 OSCam
  • markdonw解释器 sundown
  • mysql iis7站长之家
  • Scheme Lisp 解释器 Subs
  • MQ错误码解释工具 MQRC2
  • AIML解释器 program-o


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3