2.5(完结)C语言重点解剖内存管理函数要点速记
创始人
2024-05-10 09:23:13

1.指针如果有具体的指向,包括野指针,对应的合法性,我们是无法验证的。

2.所有的指针如果没有被直接使用,必须设置为NULL。

3.在函数内部,要验证指针的合法性,本质上是验证指针!=NULL。

4.自定义函数传入指针时不建议使用assert来检测,原因1:无法传入一个NULL指针。

原因2:只在debug下起作用。

5.指针越界不一定会报错。

6.程序退出之后内存泄漏问题就不存在了。

但是永远不会退出的程序,最害怕内存泄漏(操作系统,杀毒软件,服务器程序)。

7.用malloc申请空间,实际分配的空间比用户申请的空间大。同一种编译器,在同一种C语言标准下,多出来的空间是固定的。所以,如果要申请大的空间,建议使用动态内存开辟,如果申请小空间,建议在栈上开辟数组。

8.变量定义和语句中带空格。

9.逻辑密切的语句中不要带空格,不密切的带上空格。

10.复杂的函数,判断和分支结束的时候加上注释。

11.代码缩进一般4个空格。注释也要注意缩进。

12.用反义词组命名具有互斥意义的变量或者函数。

13.即便优先级确立了,但是仍然建议带上括号。特别是宏定义,一定要带上符号。

14.函数声明的时候,尽量把函数名带上。

15.函数参数命名要恰当,顺序要合理。

16.尽量不要省略函数的返回值。如果不需要返回值就空类类型(void)。

17.函数入口处对参数进行有效性检查,用if,或者assert(不推荐)。

18.函数的功能要单一,不要设计多用途的函数。

19.尽量避免函数有记忆功能(函数内尽量不要有static修饰的变量)。

20.尽量避免函数传入的参数过多。

21.尽量不要使用类型和数目不确定的参数。

22.函数传参的顺序是从右向左的。

23.f908f12a562040ac922c1c2f34cd0dfb.png

24.可变参数列表要有一个明确的参数。

2059e675be904a1b9f9c4d0c9faf56d2.png

 

25.在可变参数中,如果是短整型,一般都要进行int类型进行提升。

3407f6b3f479475d9d87f9c4aeadebd0.jpg

 

26.使用可变参数的时候,只能从第1个往后依次使用。

27.可变参数的底层设计和实现。

06290511809b4a9b84d73087eeae425b.jpg

71067aff69dc4783821caf02b4109e9a.jpg 

2ca65d8e03f0465f9706087865d458fb.jpg 

d87c2fda97794f159d403685d4269818.jpg 

28.GetTickCount()获取电脑开机到现在累计的时间。

b3a002d206144884abb6b48b210c3ecf.jpg

 

29.迭代(循环)和递归的比较,迭代法之所以用的时间少,是因为没有多余的函数调用,地规有大量的函数调用,而函数调用是需要成本的。

eb302a3ab3284c1e9f33f1ee40d0fb5b.png

 

 

 

相关内容

热门资讯

脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...