C/C++: Inline function, calloc 对比 malloc

 更新时间:2016年07月06日 17:50:31   投稿:lqh  
以下是对c/c++中的malloc函数与calloc函数的区别以及它们之间的联系进行了介绍,需要的朋友可以过来参考下

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++利用windows函数实现计时示例

    c++利用windows函数实现计时示例

    这篇文章主要介绍了c++利用windows函数实现计时示例,需要的朋友可以参考下
    2014-05-05
  • C++实现String与UF8互转

    C++实现String与UF8互转

    这篇文章介绍了C++实现String与UF8互转的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • c++11 新特性——智能指针使用详解

    c++11 新特性——智能指针使用详解

    这篇文章主要介绍了c++11 新特性——智能指针使用的相关资料,帮助大家更好的理解和使用c++,感兴趣的朋友可以了解下
    2021-02-02
  • C++实现浮点数精确加法

    C++实现浮点数精确加法

    这篇文章主要为大家详细介绍了C++实现浮点数精确加法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • C语言关系运算符实例详解

    C语言关系运算符实例详解

    本文主要介绍C语言的关系运算符的知识,这里提供实例代码以便参考,希望能帮助有需要的小伙伴
    2016-07-07
  • 共用体的定义与应用详细解析

    共用体的定义与应用详细解析

    共同体的定义类似结构体,不过共同体的所有成员都在同一段内存中存放,起始地址一样,并且同一时刻只能使用其中的一个成员变量
    2013-08-08
  • c++访问修饰符与继承关系详解

    c++访问修饰符与继承关系详解

    C++提供了三个修饰符来限定类成员的被访问权限,分别是public、protected、private,通过限定访问权限,可以达到程序编写者想要解决的安全问题和权限问题,本文给大家介绍c++访问修饰符与继承关系,感兴趣的朋友一起看看吧
    2023-10-10
  • C语言算法积累加tag的循环队列

    C语言算法积累加tag的循环队列

    这篇文章主要为大家介绍了C语言算法积累加tag的循环队列的解题思路,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • C语言文件打开的模式

    C语言文件打开的模式

    这篇文章主要介绍了C语言文件打开的模式,以及相关的原理和知识点做了分享,有兴趣的朋友参考学习下。
    2018-03-03
  • C语言数组入门之数组的声明与二维数组的模拟

    C语言数组入门之数组的声明与二维数组的模拟

    这篇文章主要介绍了C语言数组入门之数组的声明与二维数组的模拟,数组学习的同时也要相应理解C语言指针的作用,需要的朋友可以参考下
    2015-12-12

最新评论