C++
 Computer >> コンピューター >  >> プログラミング >> C++

C言語で独自のヘッダーファイル(.h)を作成して使う方法を解説

この記事では、C言語で自分専用のヘッダーファイルを作成し、プログラムから利用する方法を解説します。

ヘッダーファイルの作り方

ヘッダーファイルを作るには、拡張子が .h のファイルを新規作成します。ヘッダーファイルには main() 関数は含めません。代わりに、複数のプログラムで共有したい変数や関数の宣言・定義を記述します。

たとえば「my_header.h」という名前のファイルを作成し、以下のように変数と関数を定義できます。

int MY_VAR = 10;

int add(int x, int y){
    return x + y;
}

int sub(int x, int y){
    return x - y;
}

int mul(int x, int y){
    return x * y;
}

int negate(int x){
    return -x;
}

ヘッダーファイルの使い方

作成したヘッダーファイルを使うには、メインのプログラムと同じディレクトリ(フォルダ)に配置しておく必要があります。そのうえで、#include ディレクティブを使ってヘッダーファイルを読み込みます。

標準ライブラリとは異なり、自作のヘッダーファイルは山括弧 < > ではなくダブルクォート " " で囲んで指定するのがポイントです。

#include "my_header.h"

ダブルクォート形式の場合、コンパイラはまず現在のディレクトリ内を検索するため、自作ヘッダーの読み込みに適しています。

サンプルプログラム

それでは、自作ヘッダーを読み込んで利用する実際のプログラムを見てみましょう。

#include <stdio.h>
#include "my_header.h"

main(void) {
    printf("MY_VAR の値: %d\n", MY_VAR);
    printf("(50 + 84) の値: %d\n", add(50, 84));
    printf("(65 - 23) の値: %d\n", sub(65, 23));
    printf("(3 * 15) の値: %d\n", mul(3, 15));
    printf("15 の負の値: %d\n", negate(15));
}

実行結果

MY_VAR の値: 10
(50 + 84) の値: 134
(65 - 23) の値: 42
(3 * 15) の値: 45
15 の負の値: -15

まとめ

  • ヘッダーファイルは拡張子 .h で作成し、main() 関数は含めない
  • 共通で使いたい変数や関数をヘッダー側に定義する
  • ヘッダーファイルは呼び出すプログラムと同じディレクトリに置く
  • #include "ファイル名.h" のようにダブルクォートで読み込む

この仕組みを活用すれば、関数を複数のソースファイル間で簡単に共有でき、コードの再利用性と保守性が大きく向上します。

  1. Rubyで学ぶ!シーザー暗号エンコーダーの自作方法

    シーザー暗号(Caesar cipher)をご存知ですか? これは、ユリウス・カエサルが敵に知られないよう秘密のメッセージを隠すために実際に使った暗号化手法です。 シーザー暗号は、最も原始的な暗号技術の一つとされています。 その仕組みの核心は、アルファベットの文字をx個分だけずらす(ローテートする)というシンプルなアイデアにあります。 例えば x = 1 の場合、「A」は「B」に、「C」は「D」に変換されます。以下同様です。 では、これをコードで実装するにはどうすればよいのでしょうか? 答えは意外と簡単です。文字は数値(ASCIIコード)として表現できるという事実を利用すれば、文字の回転処理

  2. ブラウザ拡張機能の作り方を徹底解説【サンプルプロジェクト付き】

    この記事では、ブラウザ拡張機能とは何か、どのように動作するのか、そして自分でオリジナルの拡張機能を作る方法について解説します。記事の最後には、実際に「ワンクリックでコードスニペットをクリップボードにコピーできる」拡張機能を作成します。とても楽しい内容ですよ!この記事を読み進めるには、以下が必要です。JavaScriptの基本的な知識Firefoxブラウザ(他のブラウザでも可)ブラウザ拡張機能とは?ブラウザ拡張機能とは、ブラウザに追加することでその機能を拡張し、閲覧体験を向上させるツールのことです。例えば、デバイスにインストールした広告ブロッカーを思い浮かべてください。Webを閲覧する際に広告を