c - この関数はインラインで考慮されますか?

c gcc inline declaration

#include <stdio.h>

static void test()
{
    printf("is this function considered for inline?");
}

int main()
{
    test(); // definition does not have inline keyword. But declaration at the bottom (which is never used) has a inline keyword.
}

inline static void test(); // definition WITH inline keyword


コンパイラは、test()キーワードが付加されているかのようにinlineを表示しますか?

編集:申し訳ありませんが、最後の宣言にインラインキーワードを含めるつもりでした!
答え
調べるのに最適なのは、アセンブリを確認することです。

GCCにすべての関数のインライン化を考慮させるコンパイラフラグは-finline-functionsです。これはデフォルトで-O3で有効になっています。

したがって、-O3で宣言されていない場合でも、GCCはinlineですべての関数をインライン化することを検討します。
関連記事

c - 欠落したプロトタイプエラー

c++ - libgeotiffを使用してTIFファイルに座標を書き込む方法

c - jpeglibの特定のピクセルを変更する

c - Cのメモリコンパクター?

c - プログラムの実行ごとに1回だけスレッドを作成するようにOpenMPに要求するにはどうすればよいですか?

php - PHP execが特定のプログラムで文字列を返さない

c - svn_client_checkout3がEXC_BAD_ACCESSでクラッシュする

c - DB2でのUDFの構築

c - 文字ポインターを持つC構造体をDBDファイルに挿入する方法

c - longのprintf