编程规范(一 之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()接口
普通情况下我们不会推断函数的返回值。可是在实际使用中,仅仅有我们推断这两个函数的返回值。
才干够更有效的利用有限的内存空间。
编程规范(一 之kmalloc,fflush,fclose,char_init)的更多相关文章
- 华为C语言编程规范
DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...
- (转)C++ 编程规范
转载地址:http://www.cnblogs.com/len3d/archive/2008/02/01/1061902.html C/C++编码规范 今天人们越来越明白软件设计更多地是一种工程,而不 ...
- Batsing的网页编程规范(HTML/CSS/JS/PHP)
特别注意!!!我这里的前端编程规范不苟同于Bootstrap的前端规范. 因为我和它的目的不同,Bootstrap规范是极简主义,甚至有些没有考虑到兼容性的问题. 我的规范是自己从编程实践中总结出来的 ...
- JAVA编程规范(下)
JAVA编程规范(下) 2016-03-27 6. 代码的格式化 6.1 对代码进行格式化时,要达到的目的 1. 通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解: 2. ...
- JAVA 编程规范(上)
2016-03-20 J120-CHARLIEPAN JAVA 编程规范(上) 1. 应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JA ...
- 使Eclipse符合Java编程规范
编程规范是很重要的东西,能让团队的代码易于阅读和维护,也便于日后的功能扩展. 工欲善其事必先利其器!作为一个Java程序员,与Eclipse打交道可能是一辈子的事情.将Eclipse设置为符合公司编程 ...
- flex+AS3编程规范
flex+AS3编程规范 Flex+AS3编码规范 http://www.cnblogs.com/jiahuafu/ 1. 缩写: 尽量避免使用缩写,使用缩写时尽量和Flex保持一致.但要记住一 ...
- Python编程规范(PEP8)
Python编程规范(PEP8) 代码布局 缩进 对于每一次缩进使用4个空格.使用括号.中括号.大括号进行垂直对齐,或者缩进对齐. 制表符还是空格? 永远不要将制表符与空格混合使用.Python最常用 ...
- Python 编程规范-----转载
Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. ...
随机推荐
- js易混API汇总
一:slice()方法 ————————————http://www.w3school.com.cn/jsref/jsref_slice_string.asp ———————————————————— ...
- 喜欢Swift编程语言的人主要是初学者?
一早一起来,朋友圈除了被苹果发布会刷屏外,还漫天散布着一条类似的招聘消息:“招聘iOS程序员,要求拥有5年的Swift开发经验,有狼性,待遇月薪20K+,专车接送.” 随后身边的朋友很快就开始调侃:& ...
- 《从Paxos到ZooKeeper 分布式一致性原理与实践》阅读【Leader选举】
从3.4.0版本开始,zookeeper废弃了0.1.2这3种Leader选举算法,只保留了TCP版本的FastLeaderElection选举算法. 当ZooKeeper集群中的一台服务器出现以下两 ...
- document.write清除原有内容情况
原博客: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta ...
- WordPress百度熊掌号页面改造(纯代码实现)
一.粉丝关注改造 1.添加熊掌号ID声明 ID声明 <script src="//msite.baidu.com/sdk/c.js?appid=你的熊掌ID">< ...
- 关于微信小程序:scroll-view,backgroundTextStyle
踩过的坑mark下 1.滚动列表最好不要用scroll-view组件,这个组件有不少问题,比如触顶操作触发了,会连续好几次执行触发函数,得用一个开关变量和定时器配合来控制,一般情况下view组件就够用 ...
- python模块中的__all__属性
转自:http://blog.csdn.net/sxingming/article/details/52903377 python模块中的__all__属性,可用于模块导入时限制,如:from mod ...
- 左耳听风 ARTS Week 002
要求:1.每周至少做一个 leetcode 的算法题 2.阅读并点评至少一篇英文技术文章 3.学习至少一个技术技巧 4.分享一篇有观点和思考的技术文章 1.每周至少做一个 leetcode 的算法题 ...
- C# 创建与读写配置文件
配置文件内容为 <?xml version="1.0" encoding="utf-8" ?> <configuration> < ...
- javascript底层练习
1.请看下列代码: function F(){ function C(){ return this; } return C(); } var o=new F(); 请问上面的this值指向的是全局对象 ...