ChinaUnix.net
相关文章推荐:

内联函数的作用

(1)什么是内联函数
内联函数是指那些定义在类体内的成员函数,即该函数函数体放在类体内。

(2)为什么要引入内联函数
当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题。另外,前面我们讲到了宏,里面有这么一个例子:
#define ABS(x) ((x)>0? (x):-(x))
当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的定义...

by liliu4239 - 移动操作系统 - 2011-12-21 08:41:35 阅读(472) 回复(0)

相关讨论

总所周知,inline函数编译之后,代码被直接放进调用函数中。问题是:如果一个inline函数调用了其他的函数,那么这个函数的代码会像inline函数一样被复制到调用函数中么?我觉得是不会,该怎么验证?[code]void func_02() { puts("This is func_02!"); return; } inline void func_01() { puts("This is func_01!"); func_02(); return 0; } int main() { func_01(); puts("This is main function!"); return 0; } [/cod...

inline

by dodiddone - C/C++ - 2011-08-23 09:48:59 阅读(2421) 回复(5)

好多公司的笔试题都有它,我吃了两次亏,长了一智 文章(一) 内联函数与宏定义   在C中,常用预处理语句#define来代替一个函数定义。例如:     #define MAX(a,b) ((a)>(b)?(a):(b))   该语句使得程序中每个出现MAX(a,b)函数调用的地方都被宏定义中后面的表达式((a)>(b)?(a):(b))所替换。   宏定义语句的书写格式有过分的讲究, MAX与括号之间不能有空格,所有的参数都要   放在括号里。尽管如此,它还是有麻烦:  ...

by thestones - Linux文档专区 - 2005-11-17 15:49:25 阅读(889) 回复(0)

代码如下:[code]#include #include __inline fac(int i) {return i*i;} int main(void) { printf("%d\n", fac(8)); return 0; }[/code]代码中,内联函数定义为无返回值类型的,函数体内部用return返回了结果,为什么这个函数能够编译通过且正常运行?求指教,多谢!

by snowboy9859 - Linux环境编程 - 2011-09-07 17:20:54 阅读(2259) 回复(3)

对于类中的内联函数,大家都是怎么处理的?把它放在类中(这种方式显然影响可读性)?还是头文件中类定义的下面?或者用另一个单独的文件(如.inl),然后在.h文件中最后include进来? 再增加一个问题:你们一般把多少行以内的函数实现为内联? [ 本帖最后由 tyc611 于 2007-7-24 12:03 编辑 ]

by tyc611 - C/C++ - 2007-07-24 22:41:59 阅读(4396) 回复(14)

偶然发现MicaHWVerify的执行居然和gcc的优化选项-Os有关,在注释掉该选项时,SerialID可以进行读操作,但读出来的数据不对,为全ff,加上该选项之后则正常,分析其原因,应该是SerialID中使用了void inline TOSH_uwait(int u_sec),该函数内联函数,在不使用优化选项时,该函数和普通函数一样,不在代码中进行替换,这样当大量重复使用时,由于ATmega128主频较低,函数调用又需要额外时间,所以导致精确的计时不再精确,产生偏差...

by marsky - Linux文档专区 - 2007-04-23 22:00:55 阅读(751) 回复(0)

c++编程思想里边有提到,内联的纯虚函数定义是非法的 我做了个测试 [code] class Shape{ public: virtual void draw() = 0{ std::cout <<"Shape::draw()\n"; } }; [/code] 这种情况编译会出错,这个没有疑问 [code] class Shape{ public: virtual void draw() = 0; }; inline void Shape::draw(){ std::cout <<"Shape::draw()\n"; } [/code] 而这种情况编译就没有错误了,不解 我觉得上面两个都是把dra...

by zwylinux - C/C++ - 2007-04-05 10:58:36 阅读(3069) 回复(7)

BCC,在CMD下运行。不能通过编译。返回 Error E2040 [code]#include #include using namespace std; inline void error_message (char * s); { cout << '\a' << s; exit (1); } main () { error_message ("You called?"); } [/code]

by 公元 - C/C++ - 2007-01-18 15:36:35 阅读(1272) 回复(7)

在Linux AS4+gcc version 3.2.3 平台下使用内联函数发现:如果在头文件中声明内联函数,在源文件中定义内联函数,在编译的过程中,就会出错。错误信息为: [sxit@PL2000 .pre]$ g++ Test.cpp main.cpp -o inline main.cpp:8:2: warning: no newline at end of file /tmp/ccOhSUFX.o(.text+0x18): In function `main': : undefined reference to `CTest::print()' collect2: ld returned 1 exit status 相关代码如下 [code] //Test...

by UnixPanther - C/C++ - 2006-09-14 13:07:22 阅读(2145) 回复(2)

在c++类中说有内联数,说它的运行效率很高。 如下面的代码: class cl{ int itest; public: int get_itest(); void put_itest(int ij); }; inline int cl::get_itest(){ return itest; } inline void cl::put_itest(int ij){ itest=ij; } int main(){ cl s; s.put_itest(10); cout<内联后等价于 s.itest=10; -----------------------------...

by zjwyp1980 - C/C++ - 2004-03-12 10:42:24 阅读(1261) 回复(5)

总是对内联函数不太明白 就知道语句简单 而且调用次数多的话加上inline 谁能给说说内联函数的详细介绍 给个网址或者解说一下 不胜感激 还有内联函数的详细用法 各位大虾也给说说

by odin_free - C/C++ - 2003-04-17 10:31:16 阅读(1974) 回复(3)