zoukankan      html  css  js  c++  java
  • 写好C语言的几个建议(一)

        C 语言的语法简单,也没有C++ 中,这样多的功能 和 概念。但是,用C 写一个好的程序却不是很简单的问题。

    一般来说,如果,你只想用C 写个 2000行的小程序,那么或许,你不需要遵守什么规则,可以自由的发挥。

    但是,如果写一个上万行的程序,如果太自由,你会发现,到最面很难控制。而原因就是因为C 太自由。
        这篇文章先阐述函数的书写规则。

        1. 函数的书写规则:

        1.1 函数的一个最重要的规则是,对任何的输入,这个函数是不会崩溃的。函数是C语言的细胞,函数写的正规,说明,

        C 语言已经学的很不错了。很多C写的程序,bug 比较多,还经常的崩溃,大多数时候,就是没有考虑一些边界条件。

        比如一个函数:往一个栈里面添加一个元素。那么这个函数,首先就要判断这个栈是不是满了。

        1.2 如果是异常情况,要打印出错误。一般来说,错误分成两种,一种是 warning 一种 是 error。一般,从逻辑上来说,

        如果一个错误发生程序一定要终止了,那么就用error ,如果只是出现了一些异常的情况,还能补救,或者不必中断,就用warning。
        比如上面的站已经满了,就一定要打印出这个信息。否则,出了错误,就会感觉莫名其妙。错误一定要包含函数名,行数,错误的原因。

        我一般不用assert断言,而是直接在函数的入口检查参数的有效性,然后,可以定义一个宏,关闭错误,保存错误到日志,

        在控制台显示错误。所以,你要写个大点程序,先要把错误处理的框架定义好。

        1.3 如果存在异常情况,就一定要返回返回值。很多人写的函数都是void 的,函数里面出错了,就直接return,结果函数外面就不知道

        到底发生了什么事情了。比如你写了一个解压缩的函数,你一定要返回一个值,说解压缩正确了。如果不正确,也要返回具体的原因,比如,

        是buffer 不够,还是压缩文件已经损坏了,这样,在外界调用的时候,就知道怎么处理了。

        1.4 一个函数一个功能。函数功能尽量的单一,不要太复杂。虽然,这个涉及到设计的问题,功能单一,让函数的逻辑变的简单。并且,

        功能越简单,复用的可能性越大。当然,不要用长度论函数。关键是单一。一个函数,100行,但是,只是一个不可分割的功能,肯定是允许的。

        1.5 函数不应该有记忆性。有记忆的函数,很难测试。所以,尤其是逻辑复杂的函数,不要用static 和 全局的变量。如果一定要用,

        那么,把最好分成两个函数,把逻辑处理放到一个函数里面,把全局变量处理放到另外一个函数里面。

        1.6 为每个函数书写测试。测试函数,还要有一个testALL 函数,测试所有的函数。如果函数测试正确,那么返回OK,如果错误返回Error。

        你可能会觉得,写测试很烦,但是,它是你节约调试时间的好方法。testAll 一般这样输出:

        fun1  OK

        fun2 OK

        fun3 Error

        然后,你具体看看fun3 出了什么事情。这样的测试,在你修改了一个函数后,可能会影响到其他函数的情况,就很快的能找出这样错误。

        也可以去找找第三方的测试框架。

       

  • 相关阅读:
    NetCore基于Consul+Ocelot+Docker+Jenkin搭建微服务架构
    Linux文档整理之【Jenkins+Docker自动化部署.Net Core】
    分布式事务
    redis
    pandas读取Excel
    centos7上用docker搭建简单的前后端分离项目
    CENTOS 设置swap 并让系统使用它
    MikroTik RouterOS安装chr授权到阿里云虚拟机(转)
    IDEA使用External Tools配置来查看javap反编译字节码
    【k8s】metrics-server
  • 原文地址:https://www.cnblogs.com/niniwzw/p/1634611.html
Copyright © 2011-2022 走看看