inline函数使用容易导致出错的问题
来源:互联网 发布:淘宝一直访问受限 编辑:程序博客网 时间:2024/06/10 09:45
对于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()。
- inline函数使用容易导致出错的问题
- CCTableView使用中容易出错的问题
- CCTableView使用中容易出错的问题
- 容易出错的指针问题
- 一个容易出错的问题
- 使用XmlDocument的Save方法容易出错的问题
- inline函数的使用
- 一种容易出错的构造函数调用
- SqlParameter一个容易出错的问题(@2.0)
- VC2005字符集设置容易出错的问题!
- VC2005字符集设置容易出错的问题!
- C++经常容易出错的问题,整理
- iOS中容易出错的问题
- self容易出错的编程小问题
- inline构造函数的问题
- 在JavaScript中使用inline函数的问题
- 使用inline函数的注意事项
- 关于inline函数的使用
- C++空类实例大小不是0原因
- 疑问集结日志= = since 2011-8-29
- C++中 extern C含义深层探索
- MSDN for 2010
- 丰富linux驱动内容笔记——platform设备驱动
- inline函数使用容易导致出错的问题
- JavaScript_ECMAScript 继承机制实现
- 小小程序员--暑假小结
- 关于 winsock.h 与 winsock2.h 中的重定义解决办法
- struts2-java.lang.NullPointerException at com.opensymphony.xwork2.util.FileManager$FileRevision.need
- LinQ to SQL实现 SQL in
- 丰富linux驱动内容笔记(二)
- 子衿的事(45)
- getFiled of an object