找出内联的功能

时间:2010-07-15 00:44:02

标签: c++ visual-c++ g++ inline

使用GCC 4.4或MSVC编译C ++时,是否有可能让编译器在内联函数时发出消息?

1 个答案:

答案 0 :(得分:2)

使用g ++,我认为你不能制作g ++报告,但你可以使用任何显示符号的工具检查生成的二进制文件,nm例如:

#include <iostream>
struct T {
        void print() const;
};
void T::print() const { std::cout << " test\n" ; }
int main()
{
        T t;
        t.print();
}

~ $ g++ -O3  -Wall -Wextra -pedantic -o test test.cc
~ $ nm test | grep print
0000000000400800 t _GLOBAL__I__ZNK1T5printEv
0000000000400830 T _ZNK1T5printEv

VS

#include <iostream>
struct T {
        void print() const { std::cout << " test\n" ; }
};
int main()
{
        T t;
        t.print();
}
~ $ g++ -O3  -Wall -Wextra -pedantic -o test test.cc
~ $ nm test | grep print

(第二种情况下没有来自nm的输出)

编辑: 此外,分析器可能是有用的。 gprof显示了这两个例子:

0.00      0.00     0.00        1     0.00     0.00  global constructors keyed to _ZNK1T5printEv
0.00      0.00     0.00        1     0.00     0.00  T::print() const

VS。刚

0.00      0.00     0.00        1     0.00     0.00  global constructors keyed to main