大家好,我是阿叔,专注分享产品、研发、管理等相关经验。

一共有125个改善C语言程序的建议,因为篇幅的原因,本文将第62到89个建议。其他的建议再下几篇文章发布。

7. 结构、位域和枚举

建议62:结构体的设计要遵循简单、单一原则

建议62-1:尽量使结构体的功能单一

建议62-2:尽量减小结构体间关系的复杂度

建议62-3:尽量使结构体中元素的个数适中

建议62-4:合理划分与改进结构体以提高空间效率

建议63:合理利用结构体内存对齐原理来提高程序效率

建议64:结构体的长度不一定等于各个成员的长度之和

建议65:避免在结构体之间执行逐字节比较

建议66:谨慎使用位域

建议67:谨慎使用枚举

建议68:禁止在位域成员上调用offsetof宏

建议69:深入理解结构体数组和结构体指针

8. 字符与字符串

建议70:不要忽视字符串的null('\0')结尾符

建议70-1:正确认识字符数组和字符串

建议70-2:字符数组必须能够同时容纳字符数据和null结尾符

建议70-3:谨慎字符数组的初始化

建议71:尽量使用const指针来引用字符串常量

建议72:区别strlen函数与sizeof运算符

建议73:在使用不受限制的字符串函数时,必须保证结果字符串不会溢出内存

建议73-1:避免字符串拷贝发生溢出

建议73-2:区别串拷贝strcpy与内存拷贝memcpy

建议73-3:避免strcpy与memcpy函数内存重叠

建议73-4:区别字符串比较与内存比较

建议73-5:避免strcat函数发生内存重叠与溢出

建议74:谨慎strtok函数的不可重入性

建议75:掌握字符串查找技术

建议75-1:使用strchr与strrchr函数查找单个字符

建议75-2:使用strpbrk函数查找多个字符

建议75-3:使用strstr函数查找一个子串

建议75-4:区别strspn与strcspn函数

9. 文件系统

建议76:谨慎使用printf和scanf函数

建议77:谨慎文件打开操作

建议77-1:正确指定fopen的mode参数

建议77-2:必须检查fopen函数的返回值

建议77-3:尽量避免重复打开已经被打开的文件

建议77-4:区别fopen与fopen_s函数

建议77-5:区别fopen与freopen函数

建议78:文件操作完成后必须关闭

建议79:正确理解EOF宏

建议80:尽量使用feof和ferror检测文件结束和错误

建议81:尽量使用fgets替换gets函数

建议82:尽量使用fputs替换puts函数

建议83:合理选择单个字符读写函数

建议84:区别格式化读写函数

建议84-1:区别printf/scanf、fprintf/fscanf和sprintf/sscanf

建议84-2:尽量使用snprintf替代sprintf函数

建议84-3:区别vprintf/vscanf、vfprintf/vfscanf、vsprintf/vsscanf和vsnprintf

建议85:尽量使用fread与fwrite函数来读写二进制文件

建议86:尽量使用fseek替换rewind函数

建议87:尽量使用setvbuf替换setbuf函数

建议88:谨慎remove函数删除已打开的文件

建议89:谨慎rename函数重命名已经存在的文件

C语言合理字符的代码,改善C语言程序代码的125个建议,第62到89个建议!相关推荐

  1. c语言中字符进行按位与,c语言位运算符的用法

    C语言中位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果.下面小编就为大家介绍下c语言位运算符的用法. c语言位运算符的用法 ...

  2. 做我女朋友好吗小程序c语言,抖音做我女朋友好吗程序代码是什么 抖音做我女朋友程序怎么弄-站长资讯中心...

    抖音做我女朋友好吗程序代码,近期抖音上面很火的"做我女朋友好不好",很多人都在找抖音做我女朋友好吗程序代码,不知道抖音做我女朋友好吗是怎么写的,这里为大家提供抖音做我女朋友好吗程序 ...

  3. 最棒的程序代码,不是程序代码

    文/Mr. Jamie 上次聊过工程师的生产力不应该用程序代码来衡量,因为他们的极致生产力,是在少写几行程序,而不是在多写几行程序.今天刚好又看到两篇文章,可以用不同的面向延伸.解释这建事情. 首先, ...

  4. c语言打印字符的函数参数,C语言格式化打印函数vsnprintf()的实现

    Linux内核的格式化打印函数是printk(),它与printf()函数是类似的,都是根据格式字符串把可变参数列表转化成字符序列,然后输出到控制台. printf()是打印到标准输出stdout. ...

  5. c语言中字符指针变量输入,C语言指针基础知识实例讲解

    对程序进行编译的时候,系统会把变量分配在内存单位中,根据不同的变量类型,分配不同的字节大小.比如int整型变量分配4个字节,char字符型变量分配1个字节等等.被分配在内存的变量,可以通过地址去找到, ...

  6. c语言定义字符类型变量的关键字,C语言数据类型

    C语言关键字: 也称保留字,是C语言预先定义的.具有特殊意义的单词. 数据类型关键字(12个): (1)char:声明字符型变量或函数 (2)double:声明双精度变量或函数 (3)enum:声明枚 ...

  7. c语言中字符 12是多少,c语言中字符串的讲解(DOC可编).doc

    c语言中字符串的讲解(DOC可编).doc 第一部分:字符串的概念 ---字符串:用双引号引起来的一串字符.在C语言,系统将自动的为字符串添加一个结束标志\0 ,该结束标志不作为字符串的实际长度,但作 ...

  8. c语言中字符占用的存储单元,C语言知识点第1章.doc

    C语言知识点第1章 C语言知识点总结(二) 第八节 字符字符常量定义:一对单引号括起来的一个字符.如'A'.'a'.'9'相应字符对应的ASCII编码值(见附录四)字符常量占用一个字节的存储单元(一个 ...

  9. c语言将一个字符输出三遍,C语言字符相关部分内容小结

    很多初涉编程的同学,在有些知识点上不够系统化或者说不能够将知识点联系起来,甚至对有些知识点有妖魔化的趋势,先说一下,这点是完全没有必要的,对于程序的编写,我个人认为这是一件很有美感的事情,所以不必预先 ...

最新文章

  1. EIRP/ERP(有效辐射功率)基本概念
  2. 10-03视图的优缺点及注意事项
  3. 基于蚂蚁金服「如何管理好10万行代码」搭建了 Vue 项目架构
  4. RequestBody注解
  5. 源码学习之RunWith annotation used in JUnit debug
  6. SimpleDateFormat详解
  7. mysql on后加and_mysql加入ON和AND to laravel eloquent
  8. 聚焦国内名企开源!OSCAR 开源先锋日(1020)全部议程首次曝光
  9. 反向链接 反向代理_反向链接列表
  10. 用户推广成果总结会议
  11. php smarty 后台,smarty后台文件常用方法及说明
  12. 高效能管理之要事第一 时间管理表格2
  13. WNcry@2o17
  14. 【良心推荐两款软件】eDiary记笔记软件+截图识别文字软件
  15. Xcode自动编译、打包、上传到蒲公英应用分发平台
  16. 高刷新率笔记本电脑将低刷新率显示器作为扩展屏
  17. 月收入15k在上海的生活
  18. 每个人都应该拥有一把“瑞士军刀”
  19. 安装打印机一直显示设备未连接到服务器,HP M401驱动安装失败 一直显示连接设备无法安装的解决办法...
  20. 电磁兼容(EMC)基础知识

热门文章

  1. yolov5 onnx
  2. VS2019配置opencv环境时找不到Microsoft.Cpp.x64.user.props
  3. C3F:首个开源人群计数算法框架
  4. JS 事件冒泡和事件捕获
  5. avcodec_receive_packet 11
  6. python print进度条效果
  7. ffmpeg avstream::codec 被声明为已否决
  8. win10 安装tensorflow
  9. 一、LDAP目录服务介绍
  10. seo日常工作表_专业SEOer的日常工作状态