構造体に関数ポインターを含む C ヘッダー ファイルとソースを含める従来の方法は何ですか?
例えば; ヘッダー ファイルで構造体を宣言し、コード ファイルですべての関数とソース コードを宣言しました。ソースファイルで構造体を宣言し、すべての関数ポインタを適切な関数に割り当てるのは慣習ですか?
構造体に関数ポインターを含む C ヘッダー ファイルとソースを含める従来の方法は何ですか?
例えば; ヘッダー ファイルで構造体を宣言し、コード ファイルですべての関数とソース コードを宣言しました。ソースファイルで構造体を宣言し、すべての関数ポインタを適切な関数に割り当てるのは慣習ですか?
あなたは正しく、構造は通常ヘッダーファイルに配置されます。
通常、ヘッダー ファイルは、コードのフレームワークを設計するために使用されます。実際のコードは別のファイルに実装されています。
通常、ヘッダー ファイルには、
1) 関数プロトタイプ
2) クラス定義
3) 構造体と共用体の定義
4) マクロ
コードの整理について詳しくは、こちらを参照してください。
はい、宣言 (構造体と関数の両方) をヘッダー ファイルに入れることは、大きなプログラムを扱う良い方法です。あなたはそれを正しく行ったかもしれないと思いますが、それでも私はあなたに提案したいと思います.
特定のコードを提供しなかったため、私のコードの 1 つを例として使用する必要があります。
#ifndef _COMMAND_H
#define _COMMAND_H
struct Book
{
char isbn[14];
char name[60];
char author[20];
char publisher[20];
char date[9];
float price;
float discount;
};
typedef struct Book BOOK;
struct Node
{
struct Book book;
struct Node *prev;
struct Node *next;
};
typedef struct Node NODE;
int loadArray(BOOK *ary, int num, char * fileName);
int saveAs(BOOK *pBook, int size, char * fileName);
void showAll(BOOK *pBook, int size);
int errCmd();
int menu();
int search(BOOK *pBook, int size, char *isbn);
int sort(BOOK * pBook, int num);
int update(BOOK *pBook, int size, char * isbn);
int delete(BOOK *pBook, int* pSize, char * isbn);
int insert(BOOK *pBook, int *pSize);
int append(BOOK *pBook, int *pSize);
#endif
MIS(図書情報を扱う)のヘッダファイルです。
#ifndef #define #endif
各ヘッダー ファイルが 1 回だけ終了することを保証できるヘッダー ファイルで必要なことをお伝えしたいと思います。そうしないと、「再定義」というエラーが発生する可能性があります。
私の回答がお役に立てば幸いです。ありがとうございました。