内联函数和宏定义

电脑杂谈  发布时间:2020-06-06 17:26:55  来源:网络整理

宏定义 内联函数_设集合ax定义函数则对于_宏函数 内联函数

首先,宏定义和内联函数之间的区别

1. 宏定义不是一个函数,但是它就像一个函数. 预处理器通过复制宏代码来替换函数调用,从而节省了对函数进行推入和拆出的功能,并提高了效率.

宏定义 内联函数_宏函数 内联函数_设集合ax定义函数则对于

内联函数本质上是一个函数. 内联函数通常用于函数体内具有相对简单代码的函数. 它不能包含复杂的控制语句,while和switch,并且内联函数本身不能直接调用自身. 如果内联函数的函数主体太大宏定义 内联函数,则编译器会自动将内联函数转换为普通函数.

2. 宏定义是在预编译过程中用宏主体替换所有宏名称,这就是字符串替换

宏定义 内联函数_宏函数 内联函数_设集合ax定义函数则对于

内联函数是在编译期间插入代码. 编译器将在调用内联函数的每个位置直接扩展内联函数的内容,这样可以节省函数调用的成本并提高效率. <

3. 宏定义没有类型检查,无论对错,都可以直接替换

宏函数 内联函数_宏定义 内联函数_设集合ax定义函数则对于

在编译时检查内联函数的类型. 内联函数满足函数的性质,例如返回值,参数列表等.

4. 宏定义和内联函数均用于代码扩展. 区别在于宏定义是在预编译期间替换所有宏名称,而内联函数是在编译阶段在内联函数被调用的所有位置插入内联函数. 这样可以消除推卸功能,提高效率

宏定义 内联函数_设集合ax定义函数则对于_宏函数 内联函数

第二,内联函数和普通函数之间的区别

1. 内联函数和普通函数的参数传递机制是相同的,但是编译器会在调用内联函数的任何地方扩展内联函数的内容,这避免了函数调用的开销,并且没有宏机制. 缺陷

2. 调用普通函数时,系统必须首先转到函数的入口地址以执行函数主体. 执行完成后,返回到调用该函数的位置以继续执行. 该功能始终只有一个副本.

不需要处理内联函数. 当执行内联函数时,该函数将展开. 如果在程序中将内联函数调用N次,则功能代码将扩展N次

3. 内联函数具有某些限制. 内联函数主体需要简单的代码宏定义 内联函数,并且不能包含复杂的结构控制语句. 如果内联函数的函数主体过于复杂,则编译器将自动执行内联函数作为常规函数.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-236222-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...