您的位置:首页 > 其它

inline函数使用容易导致出错的问题

2011-08-29 16:32 246 查看
对于inline函数,首先应该要短小(inline只是对编译器的一个建议,编译器是可以忽略的),其次inline函数的定义一定要与调用它的部分在同一个源文件里,不同的源文件可以分别定义一个相同inline函数,内容都可以不同(不违反重复定义原则),但是这样做会引起程序调用的不确定性,应该避免这种情况。为此,可采用将inline函数放在另外一个单独的文件里,那个文件需要用就调用这个文件。

我再dev C++里做了一个测试:

新建一个空工程pj1,里面有两个文件1. cpp,2.cpp

其中1.cpp

inline int min(int a, int b)

{

return a;

}

int Get1(int a, int b)

{

return min(a, b);

}

2.cpp

# include<iostream>

using namespace std;

inline int min(int a, int b)

{

return b;

}

int Get2(int a, int b)

{

return min(a, b);

}

int Get1(int, int);

int main(int argc, char *argv)

{

cout << Get1(3, 4) << endl;

cout << Get2(3, 4) << endl;

char p;

cin >> p;

return 0;

}

结果程序跑出来得结果是:

3

3

很明显程序只调用了1.cpp中的min(),由此引起了问题(没有调用2.cpp中的min()。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐