私はC言語で作業していて、以前に他の誰かが書いたコードを変更しています。私はいくつかのことに苦労していて、何が起こっているのかをできるだけ理解しようとしています。それで、私の質問が述べたように、関数を作成するときstatic inline void
との違いは何ですか?void
長い投稿を前もってお詫びしますが、私が調査を行ったことを知ってもらいたいのですが、私が見つけたものがわかりません。
私はそれの説明がstatic
私を混乱させるのを見つけました:
静的指定子は、関数が他のファイルから参照できないことを示します。つまり、名前はリンカーによってエクスポートされません。
これを読んで、関数を参照することは関数を呼び出すこととは異なると思いますか?この関数は別の.cファイルから呼び出されるためだと思います。その場合、関数を参照しているのは何ですか?
同じウェブサイトでインライン関数を説明しているのですが、どういう意味かわかりません。
__inlineキーワードは、関数呼び出しのすべてのインスタンスの関数定義内のコードを置き換えるようにコンパイラーに指示します。ただし、置換はコンパイラの裁量でのみ発生します。たとえば、アドレスが取得された場合、または関数が大きすぎてインライン化できない場合、コンパイラーは関数をインライン化しません。
は???
どんな助けでも大歓迎です、そして私はもう一度ひどく長いポストをお詫びします。
以下はfile1.cにあります(私はそれが重要ではないと思うので一般的な名前を使用します)
COMPLEX cNoiseSample;
CGauss( &cNoiseSample, loopbackRadio->pState );
以下はfile2.cにあります
static inline void CGauss( COMPLEX * pcGauss, P_OS_UNIFORM_RAND_STATE pState )
{
//code
}