funcs.h関数の宣言があるファイルがあります:
inline void some_func( void ) __attribute__((always_inline));
funcs.c次に、関数の実装があるファイルがあります。
inline void some_func( void ) { … }
次に、メイン ファイルmain.cで#include、コードのどこかでfuncs.h使用しようとします。some_func()しかし、プログラムをコンパイルしてバイナリ ファイルを見ると、関数はインラインとして埋め込まれているのではなく、通常の個別の関数としてコンパイルされ、他の通常の関数と同じように呼び出されているように見えます。
なぜそれが起こっているのですか?実際のインライン化をこれに強制する方法はありますか? #define(もちろん、関数の代わりにマクロを使用するというオプションは除きます。)