1. ホーム
  2. c++

[解決済み] .h と .c / .cpp のどちらで #include するのですか?

2022-06-19 16:40:40

質問

C言語またはC++でコーディングするとき、どこに #include 's?

callback.h:

#ifndef _CALLBACK_H_
#define _CALLBACK_H_

#include <sndfile.h>
#include "main.h"

void on_button_apply_clicked(GtkButton* button, struct user_data_s* data);
void on_button_cancel_clicked(GtkButton* button, struct user_data_s* data);

#endif

callback.c:

#include <stdlib.h>
#include <math.h>

#include "config.h"

#include "callback.h"
#include "play.h"

void on_button_apply_clicked(GtkButton* button, struct user_data_s* data) {
  gint page;
  page = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->notebook));

  ...

すべてのincludeは.hまたは.c / .cppのどちらか、または私がここで行ったように両方にあるべきですか?

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

できる限り .c にはできるだけ多くのものを、そして .h . の中にあるincludeは .c のインクルードはその一つのファイルがコンパイルされるときにのみインクルードされます。 .h のincludeはそれを使う全てのファイルでincludeされなければなりません。