#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
//宏的缺陷
//定义一个加法
#define MyAdd(x,y) x+y;
void test01()
{
int ret = MyAdd(10, 20);
//int ret2 = MyAdd(10, 20)*20;//与预期结果不一致
cout << "ret= " << ret << endl;
}
//定义一个三目运算
#define MyCompare(a , b) a > b ? a : b;
void test02()
{
int a = 10, b = 9;
int ret = MyCompare(++a, b);//与预期结果不一致
cout << "ret= " << ret << endl;
}
/*
内联函数:没有普通函数调用时的额外开销 以空间换时间
*/
inline void func(int a)
{
a = 20;
cout << a << endl;
}
void test03()
{
func(10);
/*
//编译器将内联函数的函数体直接展开
a = 20;
cout << a << endl;
*/
}
int main()
{
test03();
system("pause");
return EXIT_SUCCESS;
}
C++基础学习DAY2-03 内联函数的引出-宏的缺陷
最新推荐文章于 2022-07-14 20:33:33 发布