C语言基础学习笔记(4):函数与防御式编程

C语言基础学习笔记(4):函数与防御式编程

图:塔克拉玛干沙漠

Guderian出品

  1. C语言函数的返回值类型,可以是数组以外的任意一种类型。

  2. 在函数调用的过程中,实参形参占用不同的内存空间,可以同名。

  3. 当函数定义在函数调用之后,C89标准默认函数返回值类型为int,而C99不再支持隐含的函数声明。

  4. 把所有函数的定义都放在主函数的前面也不意味着不需要函数原型,因为不一定只有主函数会调用你定义的函数,还是有可能出现函数的调用出现在函数的定义之前的情况。

  5. 综合34,应该在程序开头写清所有的函数原型。

  6. 函数设计的基本原则:

    (1)函数规模要小

    (2)函数功能要单一

    (3)函数接口定义要清楚

  7. 断言:assert()为在<assert.h>中定义的宏,可把其“函数原型”视作void assert(int expression)

    (1)expression为真,pass

    (2)expression为假,中断程序

    可以用if语句代替断言,代价是程序编译后的目标代码体积变大,运行效率下降;使用断言便于在调试程序时发现错误,不影响程序执行效率。断言仅用于debug版本调试程序,不能用作release版本;换句话说只能用它确保预期不会发生的状况的确不会发生,而不能用它检查可能发生的状况是否发生。注意一个assert只能检验一个条件。


【更多C语言系列】

本文标题:C语言基础学习笔记(4):函数与防御式编程

文章作者:G-SS-Hacker

发布时间:2020年02月16日 - 15:38:50

最后更新:2020年02月17日 - 13:22:14

原始链接:https://G-SS-Hacker.github.io/C语言基础学习笔记(4):函数与防御式编程/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。