inline.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 70 行

C
70
字号
// Build don't link:// Special g++ Options: -ansi -pedantic-errors -Winline -O1// Copyright (C) 2000 Free Software Foundation, Inc.// Contributed by Nathan Sidwell 9 Mar 2000 <nathan@codesourcery.com>// derived from a bug report by Benjamin Kosnik <bkoz@cygnus.com>// __FUNCTION__ was erroneously causing us to issue a `cannot inline'// diagnostic, even though we'd (a) inlined it, (b) been forced to issue an// out of line body by taking it's address, (c) not used __FUNCTION__.inline void wibble (){}inline void wobble (){}                          // gets bogus error - cannot inlinevoid bar (void (*)());void bar1 (){  wibble ();                // can be inlined  void (*ptr) () = wobble;  // force out of line issue    bar (ptr);                // make sure we make use of it}struct B{  void mwibble ()  {};  void mwobble ()  {};                       // gets bogus error - cannot inline    static void swibble ()  {};  static void swobble ()  {};                       // gets bogus error - cannot inline};void bar (void (B::*)());void bar2 (){  B::swibble ();                  // can be inlined  void (*ptr) () = &B::swobble;   // force out of line issue    bar (ptr);                      // make sure we make use of it}void bar3 (B *b){  b->mwibble ();                    // can be inlined  void (B::*ptr) () = &B::mwobble;  // force out of line issue    bar (ptr);                        // make sure we make use of it}struct C{  virtual void vwobble ()  {};                               // gets bogus error - cannot inline};void bar4 (){  C c;                              // force issue of C's vtable etc}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?