当前位置: 首页 > news >正文

编程规范(一 之kmalloc,fflush,fclose,char_init)

1. kmalloc函数接口:
   在我们使用的时候常常使用该接口,可是我们非常少注意过这个接口的一些比較重要的
   内核接口。比如:
   /*申请一个HASH表的大小*/
   #define HASH_MALLOC_SIZE 1024*1024

   ...
   char *pHashMalloc;
   pHashMalloc = (CHAR *)kmalloc(sizeof(tag_HASH_TABLE *) + HASH_MALLOC_SIZE*4);
   ...
   申请的空间的大小为:(4M+24)字节,因为kmalloc申请内存的时候是依照
   2的N次方的大小申请的,实际上申请的大小为8M的大小。这样就浪费了将近4M的内存大小。
   所以,须要我们在编写这类程序的时候,注意字节对齐。
2. #define THE_SIZE_OF_ARRAY    100
   char ucTemp[THE_SIZE_OF_ARRAY] = "\0";
   ...
   这种代码尽管看着没什么问题。可是当我们用汇编查看这段代码的时候,
   就会发现这种代码会占用100字节的BSS段的空间。对于一些内存受限的
   设备。这些空间可能非常珍贵。
   char ucTemp[THE_SIZE_OF_ARRAY];
   ucTemp[0]=0;
   这种操作能够避免我们错误的对数组赋值,比如(ucTemp[0] = '\0'就非常easy写成ucTemp[0] = '0')
3. fflash(),fclose()接口
   普通情况下我们不会推断函数的返回值。可是在实际使用中,仅仅有我们推断这两个函数的返回值。
   才干够更有效的利用有限的内存空间。

相关文章:

  • Linux Shell远程执行命令(命令行与脚本方式)
  • 互联网企业安全高级指南3.3 如何推动安全策略
  • Excel导出纵向表格(poi)
  • POJ2584_T-Shirt Gumbo(二分图多重最大匹配/最大流)
  • 以精益的眼光重新关注电子商务
  • leetcode-000-序
  • cropper使用在线图片的问题
  • 在SAE搭建Python+Django+MySQL(基于Windows)
  • Java 单例模式
  • TP5分页类
  • 新CSS伪类:focus-within
  • 如果一个人
  • xmemcached 0.60 优化过程
  • 生产环境硬件使用总结
  • xmemcached发布1.1.2 (权重、noreply、spring集成)
  • 收藏网友的 源程序下载网
  • Centos6.8 使用rpm安装mysql5.7
  • Django 博客开发教程 8 - 博客文章详情页
  • Elasticsearch 参考指南(升级前重新索引)
  • Electron入门介绍
  • HTTP中GET与POST的区别 99%的错误认识
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Promise初体验
  • spring-boot List转Page
  • yii2中session跨域名的问题
  • 代理模式
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 分享一份非常强势的Android面试题
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 如何使用 JavaScript 解析 URL
  • 微信支付JSAPI,实测!终极方案
  • 用mpvue开发微信小程序
  • 与 ConTeXt MkIV 官方文档的接驳
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ###C语言程序设计-----C语言学习(6)#
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #QT(智能家居界面-界面切换)
  • #stm32整理(一)flash读写
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (python)数据结构---字典
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (汇总)os模块以及shutil模块对文件的操作
  • (转)Unity3DUnity3D在android下调试
  • (转)详解PHP处理密码的几种方式
  • .mysql secret在哪_MySQL如何使用索引
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET MVC之AOP
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)