博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程规范(一 之kmalloc,fflush,fclose,char_init)
阅读量:5923 次
发布时间:2019-06-19

本文共 727 字,大约阅读时间需要 2 分钟。

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()接口   普通情况下我们不会推断函数的返回值。可是在实际使用中,仅仅有我们推断这两个函数的返回值。   才干够更有效的利用有限的内存空间。

转载地址:http://vzavx.baihongyu.com/

你可能感兴趣的文章
(转)[原创]在ios android设备上使用 Protobuf (使用源码方式)
查看>>
ASP连接sql server实例解析
查看>>
[转]Infobright是一个与MySQL集成的开源数据仓库
查看>>
Android的init过程详解(一)(转)
查看>>
对全概率公式和贝叶斯公式的理解
查看>>
C/C++产生随机数
查看>>
【源代码】Set集合源代码剖析
查看>>
Ubuntu 12.04 wine QQ
查看>>
c++ 参赛设置
查看>>
数据库之触发器
查看>>
Linux pipe函数
查看>>
java检测http请求的ip地址 Java问题通用解决代码
查看>>
Circuit provides reference for multiple ADCs
查看>>
c++ json 详解
查看>>
解决嵌入WinForm的WPF控件无法显示图片问题
查看>>
Java多线程详解(三)
查看>>
RGB 颜色对照表
查看>>
RGB色彩模式
查看>>
匈牙利算法
查看>>
OGRE之跳出漫长的编译等待
查看>>