手机
当前位置:查字典教程网 >编程开发 >C语言 >C/C++: Inline function, calloc 对比 malloc
C/C++: Inline function, calloc 对比 malloc
摘要:Inlinefunctionislikeamacrodefinition.Whenitwasbecalledinanotherfunctio...

Inline function is like a macro definition. When it was be called in another function, the control right will not be changed to this function. The compiler will just replace the line of inline function with the actual content of the function. We use inline function to eliminate the cost of calling a function.

内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。内联扩展是用来消除函数调用时的时间开销。它通常用于频繁执行的函数。 一个小内存空间的函数非常受益。

带参数的宏定义的一般形式如下:

#define <宏名>(<参数表>) <宏体>

其中, <宏名>是一个标识符,<参数表>中的参数可以是一个,也可以是多个,视具体情况而定,当有多个参数的时候,每个参数之间用逗号分隔。<宏体>是被替换用的字符串,宏体中的字符串是由参数表中的各个参数组成的表达式。

#define SUB(a,b) a-b

如果在程序中出现如下语句:

result=SUB(2, 3);

则被替换为:

result=2-3;

calloc与malloc的区别:

calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。

用法:

void *calloc(size_t n, size_t size);

一般使用后要使用 free(起始地址的指针) 对内存进行释放,不然内存申请过多会影响计算机的性能,以至于得重启电脑。如果使用过后不清零,还可以使用指针对该块内存进行访问.

【C/C++: Inline function, calloc 对比 malloc】相关文章:

C/C++ 多线程的学习心得总结

解决不用sizeof求出int大小的方法

C语言中基础小问题详细介绍

基于C中一个行压缩图的简单实现代码

快速模式匹配算法(KMP)的深入理解

STL各个容器性能详细比较

Qt实现图片移动实例(图文教程)

C++ 智能指针深入解析

C++Primer笔记之顺序容器的使用详解

深入理解卡特兰数及其应用

精品推荐
分类导航