编程规范(一 之kmalloc,fflush,fclose,char_init)
2015-08-11 23:36
183 查看
[code]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'就很容易写成ucTemp[0] = '0') 3. fflash(),fclose()接口 一般情况下我们不会判断函数的返回值,但是在实际使用中,只有我们判断这两个函数的返回值, 才可以更有效的利用有限的内存空间。
相关文章推荐
- java 重写的学习
- hdu3371 prim算法求最小生成树
- java 继承的学习(转)
- Java并发编程:volatile关键字解析
- Myeclipse 使用JDBC添加员工信息
- java静态初始化代码块
- 模拟百度搜索代码
- (九)面向对象的设计原则之五
- python unittest单元测试
- keytool 错误 java.io.IOException: incorrect AVA format
- Java集合框架
- 通过线程计数器和Thread.Join方法得到线程已完成状态
- 初识JAVA项目
- eeclipse使用快捷键
- java学习之数组(二)
- 《C++编程思想》 第十四章 多态和虚函数 (原书代码+习题+讲解)
- Supesite配置错误
- C++里类的构造函数与析构函数的调用时间
- TP中登录验证
- python 写一个计算执行时间的装饰器