C++inline函数的定义和声明方法怎么用?

哪个才是有效的,以为都可以运行,编译没错
方式一:

这个肯定是对的
inline void a();
void main()
{
a();
}
inline void a()
{
cout<<"sdf"<<endl;
}
方式二:
inline void a();
void main()
{
a();
}
inline void a()
{
cout<<"sdf"<<endl;
}
方式三:
void a();//这里去掉inline
void main()
{
a();
}
void a()//这里去掉inline
{
cout<<"sdf"<<endl;
}

inline:是用于声明内联函数的关键字
什么是内联函数呢?就是将函数作为像宏一样的东西,在编译的时候直接将函数在调用处展开.这样就能避免调用函数的开销,所以inline应该用在代码很少的,并且调用频率相当大,并且对效率要求很高的场所.和宏不一样的地方就是,编译器会对内联函数进行各种正常函数应有的检查,比如参数是否传递正确等等,宏就是完全替换,编译器不会在替换前对宏进行检查.当然使用inline还有许多其它的好处,不过我这样简单的回答应该能让您大概明白了吧,望采纳,谢谢...
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-12
inline 函数必须在使用前定义,不然一定没效果!

inline关键字只是作为一个编译提示,编译器可以根据自身实现情况选择性优化。话说现在编译器都具备很多优化,没必要特意去使用inline关键字。

inline函数默认是内部链接,所以如果将定义放在其他文件的话会出现“无法解析外部符号” 链接错误。

inline函数最好放在头文件里, 在使用前应该可以看到期定义。本回答被提问者和网友采纳
第2个回答  2015-10-31
inline 函数必须在使用前定义,不然一定没效果。

inline关键字只是作为一个编译提示,编译器可以根据自身实现情况选择性优化。话说现在编译器都具备很多优化,没必要特意去使用inline关键字。

inline函数默认是内部链接,所以如果将定义放在其他文件的话会出现“无法解析外部符号” 链接错误。

inline函数最好放在头文件里, 在使用前应该可以看到期定义。
第3个回答  2013-09-12
像这样简单的输出函数,你不声明为inline编译器也会搞成inline的。
一般来说简单的还是声明为inline快一点。
复杂的建议不要加。
相似回答