C++中inline函数声明,挺有意思的!
inline函数声明可以将一个大函数内的数个小函数在保持高速运行的基础上维持其各自的独立性,书上原话是:“将函数声明为inline,表示要求编译器在每个函数调用点上,将函数内容展开。面对一个inline函数,编译器可将函数的调用作为改为一份函数代码副本代替。这将是我们获得性能改善,其结果相当于把数个函数写入一个函数内,但这数个函数依然维持其独立”。
#include
#include
using namespace std;
inline bool checkValid(int pos)
{
return (pos <= 0 || pos > 64) ? false : true;
}
const vector<int>* pentagonal_serise(int pos)
{
static vector<int> _elems;
if ((checkValid(pos)) && (pos > _elems.size()))
{
for (int ix = _elems.size() + 1; ix <= pos; ix++)
{
_elems.push_back(((ix * 3 - 1) * ix) / 2);
}
}
return &_elems;
}
bool pentagonal_elem(int pos, int& elem)
{
if (!checkValid(pos))
{
cerr << "Sorry. Invalid position." << endl;
elem = 0; //容易崩,不写的话
return false;
}
const vector<int>* pent = pentagonal_serise(pos);
elem = (*pent)[pos - 1];
return true;
}
int main()
{
int elem;
if (pentagonal_elem(8, elem))
cout << elem << endl;
if (pentagonal_elem(88, elem))
cout << elem << endl;
if (pentagonal_elem(12, elem))
cout << elem << endl;
return 0;
}

代码是在 visual studio 中编写的,该软件还是比较好用的,我安装的是2022专业版;
共勉!