锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务,锦州广厦维修电脑,公司IT外包服务
topFlag1 设为首页
topFlag3 收藏本站
 
maojin003 首 页 公司介绍 服务项目 服务报价 维修流程 IT外包服务 服务器维护 技术文章 常见故障
锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务技术文章
c语言中那些被忽略的知识点,但效果奇佳,肯定也有你忽略的

作者: 佚名  日期:2017-06-02 07:36:44   来源: 本站整理

 c语言作为程序员来说,是入门语言。c语言 的教材也是多的数不胜数,但是呢,有的c语言教材100-200多页,有的教材600页+,然而很多学者都是学的前者教材。
为什么大家常说的简单的c语言都可以编写那么厚的教材?其一,c语言并不简单,或者说,敢说c语言简单的人都不是一般人;其二,c语言知识点覆盖面广,200多页的教材只是教会了你怎么用,并没有教会你多少实质性内容;其三,很多实用的知识点,在200多页的教材也并没有体现出来。
今天我们主要聊聊那些一般不被重用的,但是却对提升代码质量和效率有奇佳效果的知识点。实话说,没有进公司前,我也忽略了这些,有一些甚至上学期间都没见过。好糗。
正在看这篇文章的朋友,如果你还在上学阶段,请告诉我,你听过"断言"这个名词吗?如果没听过,接下来我就给你好好说说,让你了解了解,如果你听过,给你点赞。
1.程序一般分为两个版本,Debug和Release版本.Debug版本用于内部调试,Release版本给用户使用。断言的关键字是assert.先看下面一个实例。

代码功能不用多解释,随便写的一个算法。断言assert用于检查"不应该"发生的情况。如上代码在运行的时候,如果assert的参数为假,那么程序会在assert中止,同时会提示你在哪个文件的多少行出现了什么错误,也就是assert所在的位置。
需要格外注意的是,assert不是一个函数,是宏。程序员可以把assert看成一个在任何系统状态下都可以安全使用的无害测试手段。并且,使用assert可以省略if else的判断,并且他比if else更智能。如果程序在assert终止,并不是说含有该assert的函数有错误,而是调用者除了差错,assert可以更方便的帮助我们找到发生错误的原因。
2.assert作为一个宏,原型定义在中,如下图,就是判断表达式的真假来反馈给程序员信息。

3.任何事物的出现都有利和弊,assert也是如此,他的缺点是,如果频繁调用assert,会极大地影响到程序的性能,增加格外的开销。所以,工具虽好用,可不要贪用哦。在调试结束后,可以在“#include ”前加 #define NDEBUG来禁用assert.如下:

4.了解了断言assert,在实际使用中,务必注意以下点:
①使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况的区别,后者是必然存在并且是一定要解决的bug。

②assert可以放在程序中的任何位置,但是一般放在程序的入口处,检查参数的有效性或合法性。
③在编写函数的时候,要清楚在该函数中,我要做哪些假定,一旦确定了的假定,就需要使用断言对假定进行检查。
④越来越多的程序员都有了保证程序的健壮性的意识,很好。也就是进行了很多防错设计,当进行防错设计时,如果“不可能发生的事”的确发生了,就需要使用断言报警。



热门文章
  • 机械革命S1 PRO-02 开机不显示 黑...
  • 联想ThinkPad NM-C641上电掉电点不...
  • 三星一体激光打印机SCX-4521F维修...
  • 通过串口命令查看EMMC擦写次数和判...
  • IIS 8 开启 GZIP压缩来减少网络请求...
  • 索尼kd-49x7500e背光一半暗且闪烁 ...
  • 楼宇对讲门禁读卡异常维修,读卡芯...
  • 新款海信电视机始终停留在开机界面...
  • 常见打印机清零步骤
  • 安装驱动时提示不包含数字签名的解...
  • 共享打印机需要密码的解决方法
  • 图解Windows 7系统快速共享打印机的...
  • 锦州广厦电脑上门维修

    报修电话:13840665804  QQ:174984393 (联系人:毛先生)   
    E-Mail:174984393@qq.com
    维修中心地址:锦州广厦电脑城
    ICP备案/许可证号:辽ICP备2023002984号-1
    上门服务区域: 辽宁锦州市区
    主要业务: 修电脑,电脑修理,电脑维护,上门维修电脑,黑屏蓝屏死机故障排除,无线上网设置,IT服务外包,局域网组建,ADSL共享上网,路由器设置,数据恢复,密码破解,光盘刻录制作等服务

    技术支持:微软等