使用断言为强大的软件开发必威真人投注

C断言在此期间C中的软件开发过程必威真人投注,有助于客户和截止日期的可交付成果,但开发人员将在其设计或执行中找到错误和问题,或两者。软件开发人员如何通过更改功能请求构建计划并在这些年内维护它?在更简单的级别,如何更改软件,代码 - 程序和算法 - 而不会丢失原始功能?

软件开发从Maxi必威真人投注m学习,“如果你不从错误中吸取教训,历史就重复了自己'。在此博客文章中,您将了解写简单的C程序并将其更新,因为要求使用单元测试捕获此行为。这可能是你的开始,令人兴奋的宝宝步骤高级图形编程和游戏开发必威真人投注!!

遇见断言宏

如果您开始C用户,则可能会受益于使用小步骤中的C编译器。在Windows中,您可以使用Mingw GNU工具链,Borland C / C ++编译器或Microsoft Visual Studio,或Linux中的shell。首先在shell中键入,

$ gcc -version.

而且您应该看到以下输出,然后您已准备好进入C开发。必威真人投注

GCC(Ubuntu / Linaro 4.6.3-1ubuntu5)4.6.3版权所有(C)2011 Free Software Foundation,Inc。这是免费软件;查看复制条件的源。没有保修单;甚至没有用于特定目的的商用或适应性。

通过键入文件这些代码行并将其另存为“assert_true.c”来遵循。

#include #include Typedef无符号炭黑;bool true = 1;bool false = 0;int main(){断言(真实);断言(1 + 1);断言(1 + 1> 0);断言(1 + 1  -  4);}

要编译和执行程序,您可以运行命令,

$ gcc asert_true.c -o assert_true$ ./assert_true.

除了下一个提示之外,您可以看到没有真正的输出,这意味着您的代码没有触发任何断言FALIENS。让我们再次尝试使用另一个程序,并将其另存为“assert_fail.c”

#include #include Typedef无符号炭黑;bool true = 1;bool false = 0;int main(){断言(假);断言(1  -  1);断言(1  -  1> 0);断言(1  -  1  -  4> 0);}

要编译和执行程序,您可以运行命令,

$ gcc asert_fail.c -o assert_fail$ ./assert_fail.Assert_Fail:Assert_Fail.c:10:main:断言`false'失败。中产响

您的实证实验向您展示了一些关于Surier宏的东西;即,关于表达式的真实评估断言是安静的,在错误的评估中,它触发了Assert_Fail并中止了计划执行。

SUSERT宏的语法

断言是C语言中的宏。要在程序中包含断言功能,您可以添加标题文件定义,

#include 

当Assert宏评估表达式并中止执行时,当所述表达式在C中具有假值时,如果表达式评估为null,false,0,然后据说断言发生了。只有SetJMP等调用,LongJMP和Atexit在触发断言()后有更改完成。有关更多详细信息,请阅读Linux上的手动页面进行断言功能。

$ man断言

应该提出一个页面,

Assert(3)Linux程序员手册断言(3)名称断言 - 如果断言是假的,则中止程序概要#include void断言(标量表达);描述如果目前定义了宏NDEBUG 最后包括,宏assert()没有生成代码,因此没有任何作用根本

节目设计

程序员使用Assert宏来引发错误以捕获其代码的意外行为。例如,如果您编写了一个程序来计算实体的卷或多边形的区域,则可以包括卷或区域分别不应为零的断言;即断言区域> 0

示例 - 在因子函数中使用断言

数字的阶乘N,被定义为从1到n的数字的乘积;即n!= 1 * 2 * 3 * ... n。显然,计算阶乘的直接方式是使用for-loop,但我们更喜欢使用递归定义。这种递归形式是等同的,准确的,阶乘函数的数学定义正在使用符号;即n!=(n-1)!* n。在这里,我们可以使用Assert宏来确保阶乘结果始终是积极的。

显然,作为迭代和递归方式的程序将其作为程序写入,

#include #include Typedef无符号炭黑;bool true = 1;bool false = 0;/ *递归方式写入阶乘* /int fact(int n){if(n == 0){返回1;}返回事实(n  -  1)* n;}int main(){INT fact_val;INT I;for(i = 0; i <10; i ++){fact_val =事实(i);/ *阶乘总是非零* /断言(fife_val> 0);printf(“%d!=%d \ n”,i,fact_val);}返回0;}

运行程序

您可以从源网站,c.org下载您的平台C包,并运行测试和程序,$ gcc fact_assert.c -o fact_assert && ./fact_assert,是解释代码然后运行程序的命令

0!= 11!= 12!= 23!= 6.4!= 24.5!= 120.6!= 720.7!= 5040.8!= 40320.9!= 362880.

错误和修复

程序中的函数中有各种各样的错误,

  1. 功能确实吹出负输入。您需要包括守卫或断言。

  2. 大输入n的数值溢出

它留下了读者的练习,以更新以下代码,并在C解释器上运行它,以查看一个消息,以查看显示2个unittest已通过的消息,并且在屏幕上打印了快乐的“确定”消息。

概括

软件开发人员使用断言来强制设计程序中的不变性,并测试对回归的那些程序。C Assert宏是在代码中强制执行不变的关键工具之一,测试使用户和开发人员可以在没有回归的情况下进步。了解有关回归测试和软件设计的更多信息。学习c可以引导你到其他东西喜欢编程你的iPhone和更复杂的项目。

顶级课程在Excel

Python for Excel:使用xlwings进行数据科学和金融
Alexander Hagmann.
4.6 (267)
畅销书
77-728 Microsoft Excel 2016专家认证
戴夫墨菲
4.6 (442)
畅销书
Microsoft Excel - 从初学者到高级Excel
Kyle Pew,Office Newb
4.6 (229,725)
畅销书
Excel初学者:财务建模和估值
365职业
4.6 (34,331)
畅销书
Microsoft Excel - 具有Excel Pivot表的数据分析
Maven Analytics,Chris Dutton
4.6 (27,276)
畅销书
Microsoft Excel - 数据可视化,Excel图表和图表
Maven Analytics,Chris Dutton
4.6 (21,881)
畅销书
Excel Essentials为现实世界(完整的Excel课程)
Leila Gharani.
4.7 (6,224)
收视率最高
Microsoft Excel Pro提示:从初学者到高级Excel
Maven Analytics,Chris Dutton
4.6 (2,523)
畅销书
使用Excel的数据分析必需品
他,特拉维斯周
4.5 (6,916)
使用Excel 2016的数据分析统计数据
Sandeep Kumar.
4.5 (2,591)
PowerPoint&Excel Fusion(+250 PowerPoint幻灯片)
Dragos Stefanescu,Richard Kborbut
4.5 (1,006)

更多Excel课程

Excel学生还学习

赋予你的团队。引领行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示