7-基于契约编程-实践.pptVIP

  • 4
  • 0
  • 约6.58千字
  • 约 22页
  • 2017-08-20 发布于河南
  • 举报
Design by Contract — Practice Language Support in C/C++ 和其他语言相比,C/C++特别注重效率,因此不受任何程序员控制的运行期内部检查机制 如:指针检查、数组下标检查、运行期类型检查等 断言的使用(非关键字) assert ASSERT assert()用法 assert宏的原型定义在assert.h中,其作用是如果它的条件返回错误,则终止程序执行 一般在Debug版有效,在Release版不起作用 用法: 在函数开始处检验传入参数的合法性 每个assert最好只检验一个条件 不要使用有副作用的语句 assert和后面的语句应空一行,以形成逻辑和视觉上的一致感 有的地方,assert不能代替条件过滤 例子 double sqrt(double x) { assert( x=0 ); //pre-condition //.... //.... //.... assert( fabs(y*y-x) eps ); //post-condition return y; } ASSERT和VERIFY 在VC环境下一般使用ASSERT和VERIFY 在Debug模式下作用基本一致,二者都对表达式的值进行计算,如果值为非0,则什么事也不做;如果值为0,则输出诊断信息。 在Release模式下效果完全不

文档评论(0)

1亿VIP精品文档

相关文档