m0_57900435 2021-05-30 23:00 采纳率: 94.1%
浏览 31
已结题

_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;
    
      }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月15日
  • 已采纳回答 9月7日

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料