m0_57900435
2021-05-30 23:00
采纳率: 94.1%
浏览 20

_Static_assert,c11的,怎么还是用不了,哪里错了

 

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • bostonAlen 2021-05-30 23:22
    已采纳

      assert() 函数用法

      assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: 

     #include <assert.h>
    
     void assert( int expression );

      assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,

      然后通过调用 abort 来终止程序运行。

      请看下面的程序清单badptr.c:

      #include <stdio.h>
    
      #include <assert.h>
    
      #include <stdlib.h>
    
      int main( void )
    
      {
    
      FILE *fp;
    
      fp = fopen( "test.txt", "w" );//以可写的方式打开一个文件,如果不存在就创建一个同名文件
    
      assert( fp ); //所以这里不会出错
    
      fclose( fp );
    
      fp = fopen( "noexitfile.txt", "r" );//以只读的方式打开一个文件,如果不存在就打开文件失败
    
      assert( fp ); //所以这里出错
    
      fclose( fp ); //程序永远都执行不到这里来
    
      return 0;
    
      }
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题