有没有朋友知道inline的好处? 涵数前加了一个inline保留字是什么意思呢?会否速度提高点,真正嵌入到调用之处,而无须在调用过程中压堆栈等操作?我做了个实验,好象效果并没有多大的提高. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 编译器默认把短代码的函数都认为是inline的,所以效果一样。 现在的编译器都很聪明,所以通常只是写给人看的……强制内联的关键字是_inline或__inline(忘记是一个还是两个下划线了),真要试效果用这个看看 inline是内联关键字,当成员函数的代码不是很多的,而且在程序中要反复的调用的时候,就可以将此函数设置为内联函数。这样在编译的时候,就会在调用的时候像宏那样的展开,而不是在执行的时候去反复的寻找函数的地址,从而能够提高程序的效率。当然,使用内联函数是以增加内存空间而换取执行效率。你不妨作以下以下的实验:设计一个函数,其中只有1-2句执行代码,然后再在一个循环中反复的调用。分别将函数设置为内联函数和非内联函数,通过计算循环消耗的时间来比较(一般的主观上看可能看不出来)附计算程序执行时间代码:__int64 lfreq;BOOL bret=QueryPerformanceFrequency((LARGE_INTEGER*)&lfreq);__int64 lstart;QueryPerformanceCounter((LARGE_INTEGER*)&lstart);//在这里放置循环代码__int64 lstop;QueryPerformanceCounter((LARGE_INTEGER*)&lstop);__int64 lruntime=lstop - lstart;double dsec= lruntime/lfreq; 所得时间为毫秒 恩我比较同意无处不在的观点一般情况下不用显示的添加inline 我赞同使用inline就是取代宏。林锐博士的《高质量C++编程指南》就认为inline函数是取宏之长而弃宏之短。 不同意dch4890164(跳梁小丑)的一般情况下不用显示的添加inline的观点,我认为为了统一,函数体不宜放在.h,如果不显式添加inline,就只有放在.h文件。 C++中一个宏的更好替代品,当然只能替代宏的部分功能。理论上将可以省去函数的调用开销,滥用会产生代码膨胀的后果。但实际编译时编译器会根据实际情况进行优化,来决定是否真的进行inline。 FindNextFile与CloseHandle的问题 [跪求]大数XOR,NOT,AND,OR的算法 用WININET编程访问一些网站12030错误 用NERO API函数怎么可以在不安装nero的软件情况下使用! CListCtrl里的问题~求助! pb与接口问题,特急 又有分了!!大虾门,在VC中如何实现数据库的上传??望各位慷慨陈辞!!! 添加换行的操作 关于串口初始化的一个小问题,谢谢 内存泄漏的问题 如何将文件保存成Excel格式 CtreeCtrl 问题请教
强制内联的关键字是_inline或__inline(忘记是一个还是两个下划线了),真要试效果用这个看看
你不妨作以下以下的实验:
设计一个函数,其中只有1-2句执行代码,然后再在一个循环中反复的调用。分别将函数设置为内联函数和非内联函数,通过计算循环消耗的时间来比较(一般的主观上看可能看不出来)
附计算程序执行时间代码:
__int64 lfreq;
BOOL bret=QueryPerformanceFrequency((LARGE_INTEGER*)&lfreq);
__int64 lstart;
QueryPerformanceCounter((LARGE_INTEGER*)&lstart);
//在这里放置循环代码
__int64 lstop;
QueryPerformanceCounter((LARGE_INTEGER*)&lstop);
__int64 lruntime=lstop - lstart;
double dsec= lruntime/lfreq;
所得时间为毫秒
我比较同意无处不在的观点
一般情况下不用显示的添加inline