1

構造体に関数ポインターを含む C ヘッダー ファイルとソースを含める従来の方法は何ですか?

例えば; ヘッダー ファイルで構造体を宣言し、コード ファイルですべての関数とソース コードを宣言しました。ソースファイルで構造体を宣言し、すべての関数ポインタを適切な関数に割り当てるのは慣習ですか?

4

2 に答える 2

5

あなたは正しく、構造は通常ヘッダーファイルに配置されます。

通常、ヘッダー ファイルは、コードのフレームワークを設計するために使用されます。実際のコードは別のファイルに実装されています。

通常、ヘッダー ファイルには、

1) 関数プロトタイプ

2) クラス定義

3) 構造体と共用体の定義

4) マクロ

コードの整理について詳しくは、こちらを参照してください。

于 2013-03-02T06:24:59.380 に答える
3

はい、宣言 (構造体と関数の両方) をヘッダー ファイルに入れることは、大きなプログラムを扱う良い方法です。あなたはそれを正しく行ったかもしれないと思いますが、それでも私はあなたに提案したいと思います.

特定のコードを提供しなかったため、私のコードの 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 回だけ終了することを保証できるヘッダー ファイルで必要なことをお伝えしたいと思います。そうしないと、「再定義」というエラーが発生する可能性があります。

私の回答がお役に立てば幸いです。ありがとうございました。

于 2013-03-02T06:51:02.677 に答える