1. ホーム
  2. c

[解決済み] 構造体の定義は.hと.cのどちらに書くべきですか?

2022-08-17 22:27:35

質問

の完全な定義の両方を見たことがあります。 struct の完全な定義と、単なる宣言の両方を見ました。

もし違いがあるのなら、私は通常 .h

typedef struct s s_t;


はっきり言って、オプションはヘッダーファイルでの宣言とクラスでの定義、またはヘッダーファイルでの宣言と定義の両方です。どちらも、たとえリンクによるものであっても、同じ使い勝手になるはずですよね?


ほとんど重複しているものを多く見かけますが、例えば ここで のように、ほとんど重複しているものはたくさんありますが、完全に一致するものはありません。この点に関して私が間違っているならば、訂正してください。

どのように解決するのですか?

そのファイルのプライベート構造体は、.c ファイルに記述し、.h ファイル中の関数で使用される場合は、.h ファイルに宣言する必要があります。

パブリックな構造体は、.h ファイルに置くべきです。