欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++:内联函数与宏函数

程序员文章站 2024-03-21 12:40:40
...
  1. 为什么会有内联函数:
    1. ①宏函数必选在填括号才能提高正确性
    2. ②宏函数填了括号也不一定达到理想效果

              例子:

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

#define compare(a,b) (((a)>(b))?(a):(b))

int main()
{
	int a = 10;
	int b = 5;
	int ret=compare(++a, b);//本应该是11,但是结果是12   因为compare(++a,b), 先比较++a与b的值,然后再返回++a,一共执行++a2次,所以结果为12
	cout << "a的值" << a << endl;
	system("pause");
	return EXIT_SUCCESS;
}
  1. 内联函数的好处:
    1. 弥补了宏函数的缺陷
    2. 以空间换时间,不会产生函数调用的时间浪费。
  2. 内联函数的创建:
    1. 在函数的声明和定义前面加上inline关键字
    2. 类成员函数默认都是内联函数
  3. 注意:
    1. 内联函数的声明和定义都必须加上inline关键字,否则,编译器把它当成普通函数
    2. 在编程中,不需要特意把每个函数都写成内联函数,因为好的编译器会自动把能作为内联函数的函数转换成内联函数
    3. 在编程中,把函数写成内联函数只是向编译器建议,编译器也有可能不会采用建议

 

相关标签: C++