C の「静的」関数とは何ですか? 質問する

C の「静的」関数とは何ですか? 質問する

質問は平凡な機能ではなく staticコメントで明確にされている方法。

変数とは何かは理解していますstaticが、static関数とは何でしょうか?

また、たとえばで関数を宣言し、 を含めた場合void print_matrixは になりますが、 として宣言するとコンパイルされるのはなぜでしょうか。a.ca.h"a.c""print_matrix@@....) already defined in a.obj"static void print_matrix

更新明確にするために - 皆さんの多くが指摘しているように、インクルードは良くないことはわかっています。私は、すべての関数を適切なファイルにグループ化する方法がよくわかるまで、.c一時的にスペースを空けるためにインクルードしています。一時的な、素早い解決策です。main.c.h.c

ベストアンサー1

static関数は、同じファイル内の他の関数(より正確には同じ翻訳ユニット)。

編集: 質問の作成者が「クラス メソッド」を意味していると思った人のために: 質問にタグが付いているので、C彼は単純な古い C 関数を意味しています。(C++/Java/...) クラス メソッドの場合、staticこのメソッドはクラス自体で呼び出すことができ、そのクラスのインスタンスは必要ありません。

おすすめ記事