ChinaUnix.net
相关文章推荐:

linux inline 函数声明

我定义了一个inline函数foo()。然后在主函数调用它。为啥反汇编时候还是看到了call foo()?不是应该整合到main中而不是函数调用了吗

by kkmm0105 - C/C++ - 2011-06-18 16:14:52 阅读(2353) 回复(4)

相关讨论

如果把成员函数的定义写在类里面,那这个函数就是自动inline的,对吗? 如果是这样,又有一个新问题: gcc 4.1.2的stl里面看到容器模板的成员函数都是在模板内定义的,这样当实例化这些容器时,得到的类,其成员函数会不会是inline的?如果是,那代码膨胀岂不是会很厉害

by cjog - C/C++ - 2010-08-01 08:17:01 阅读(3586) 回复(8)

头文件中定义函数 在cpp文件中实现函数,在函数前使用inline关键字,编译通过,但在链接过程中一直报错,说找不到函数名字这个符号! 请问该怎么解决! 上述问题发生在VC中,在aCC和gcc中是否有同样问题?

by fibbery - C/C++ - 2006-12-01 11:44:38 阅读(5222) 回复(8)

写一个全局的 TYPE t; 如果在头文件中写 TYPE t; 很多 .cpp 包含后,link时必定出现重复定义错。 如果在头文件中写 extern TYPE t; 需要有另外的 .cpp 中添上定义 TYPE t; 否则link时出现未定义错误。(这样就无法做一个head files only的library了) 那。。。用inline呢, 头文件写 inline TYPE & get_t( ) { static TYPE t; return t; } 任意多个 .cpp 都可以将 get_t() 直接当作 全局变数用 :P ,不会有未定义错,也...

by 太平绅士 - C/C++ - 2008-12-21 19:35:10 阅读(3337) 回复(17)

#include typedef struct TAG_TEST { int m; int n; }TEST; #define FUN(pTst) \ do{ \ printf("pTst->m=%d\n", (pTst)->m); \ printf("pTst->n=%d\n", (pTst)->n); \ return 0; \ }while(0) inline int fun(TEST* pTst) { printf("pTst->m=%d\n", pTst->m); printf("pTst->n=%d\n", pTst->n); return 0; } int main() { TEST tst = {98, 160}; FUN(&tst); // 1语句 fun(&ts...

by pzz68 - C/C++ - 2007-03-12 11:33:10 阅读(1552) 回复(7)

本帖最后由 wsgtrsys 于 2013-08-18 19:26 编辑 因为需要对内核中的一个函数劫持后,修改其中的一个变量 。 是参考这个篇文章的的做法。 http://jan.stancek.eu/mips_function_runtime_detour 原来曾经在2.6.16的内核上劫持成功,但最近在2.6.35的内核上就不行了。 2.6.35内核的代码部分仿佛是只读的,不能修改原来的函数的机器码。 有两个问题: 1、mips上是不是有类似于x86上的cr0寄存器? 2、如果不是用cr0进行保护,是不是...

by wsgtrsys - 内核源码 - 2013-08-19 11:00:08 阅读(1290) 回复(2)

这种函数有什么用 ? static inline void __module_get(struct module *module) { } static inline int try_module_get(struct module *module) { return 1; } static inline void module_put(struct module *module) { }

by halfslipper - 内核源码 - 2011-01-12 10:03:18 阅读(18230) 回复(9)

比如这样的情况,我有一个inline函数 inline void write_data( unsigned char data, unsigned char CS1, unsigned char CS2 ); 我又在一个for循环里调用它 for(i = 0; i < 1000000000000; i++) { write_data(...) } 这个循环次数很大。这个inline函数展开起来,整个程序的size岂不是非常大。。。 听说聪明的编译器会根据实际情况将一个函数处理成inline或是普通函数inline只是给编译器提个醒,是不是这样呢

by magicboatrocket - 嵌入式开发 - 2009-09-22 23:01:46 阅读(1730) 回复(1)

我看到GCC的文档中对inline有这样的描述, 如果inline没有声明为static, 那么编译器必须假设该函数可能被其他文件所引用, 因此不会产生内联代码(大意), 我的问题是, 此条款对放在投文件中的inline是否适用?

by accelerator - C/C++ - 2007-09-28 15:23:38 阅读(7023) 回复(6)

选择inline类型的函数是有条件的 ·函数足够简单,并且非常频繁被调用,只有一条程序就可以完成任务 ·不能包含复杂的结构控制语句例如while switch ------------------------------------------------- C 内联函数(inline) 什么是内联函数 内联函数是为了解决C 预处理器宏存在的问题所提出一种解决方案,用来提高函数使用效率 内联函数定义 内联函数使用inline关键字定义, 并且函数体和申明必须结合在一起, 否则...

by sil - Linux文档专区 - 2007-08-30 09:18:42 阅读(788) 回复(0)

[code] #include using namespace std; class A{ char c; int x; static int zzz; public: virtual int max(int y){return y>x?y:x;} void set(char xx, int z){c = xx; zzz = z;} int get(){return x;} virtual void print(){cout<<"A.c = "<x?y:x;} void set(char x...

by angelanpan - C/C++ - 2006-03-24 09:28:34 阅读(3886) 回复(4)