12.25

电路板设计电源分三块。

一、数字供电    

二、模拟供电

三、光耦外部供电

三部分电源地是分开的。

断言

我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”。

assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句:

if(假设成立)

{

程序正常运行;

}

else

{

报错&&终止程序!(避免由程序运行引起更大的错误)

}

但是这样写的话,就会有无数个if语句,甚至会出现,一个if语句的括号从文件头到文件尾,并且大多数情况下,我们要进行验证的假设,只是属于偶然性事件,又或者我们仅仅想测试一下,一些最坏情况是否发生,所以这里有了assert().

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

1#include"assert.h"

2void   assert(int  expression );

assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。

使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。

在调试结束后,可以通过在包含#include 的语句之前插入 #define NDEBUG 来禁用assert调用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Like, Um, How Do I Stop, Ya Know, Using Um and Ah? Use th...
    行动者123阅读 1,121评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • 我的问题: 写作是什么? 文章是什么 ? 什么样的文章是好文章? 为什么要写作? 如何写出好文章? 如何看待别人已...
    郭青耀阅读 1,045评论 0 3
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • 女人结婚生子后之前的生活轨迹就被打乱了,你不得不熬过九个月的孕期,一个月的月子,有的地方夸张点,还要熬过百天...
    女巫的店阅读 226评论 1 0