0Pricing
C Academy · レッスン

マクロとインライン関数

マクロ定義と、関数に対する利点について学びます

「マクロとインライン関数」はCoddyKit上の無料C Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C Academyコースには全3レッスンが含まれています。

マクロ入門

マクロとインライン関数

マクロとインライン関数は、関数呼び出しのオーバーヘッドを減らすことで、コードの最適化に役立ちます。

このレッスンでは、次のことを学びます。

  • マクロを定義して使用する方法。
  • マクロと比較したインライン関数の利点。
  • マクロとインライン関数によってパフォーマンスが向上する仕組み。
マクロとインライン関数 — イラスト1

マクロとは

マクロとは

マクロは、コンパイル前にコードを置き換えるプリプロセッサディレクティブです。

例:

#define SQUARE(x) (x * x)

これにより、コンパイル時にSQUARE(5)が(5 * 5)に置き換えられます。

例: マクロの使用

例: マクロの使用

このプログラムでは、計算にマクロを使用する方法を示します。

#include <stdio.h>

#define SQUARE(x) (x * x)

int main() {
    int num = 4;
    printf("Square of %d is %d\n", num, SQUARE(num));
    return 0;
}

マクロの制限

マクロの制限

マクロでは型チェックが行われないため、予期しない結果になる可能性があります。

問題の例:

#define MULTIPLY(x, y) x * y

MULTIPLY(2 + 3, 4)を呼び出すと2 + 3 * 4に展開され、誤った結果になります。

インライン関数の導入

インライン関数の導入

インライン関数は、型安全性を維持しながらマクロの代替として使用できます。

構文:

inline int square(int x) { return x * x; }

インライン関数は関数呼び出しのオーバーヘッドを減らしつつ、適切な型チェックを保証します。

例: インライン関数の使用

例: インライン関数の使用

このプログラムでは、マクロの代わりにインライン関数を使用する方法を示します。

#include <stdio.h>

inline int square(int x) { return x * x; }

int main() {
    int num = 4;
    printf("Square of %d is %d\n", num, square(num));
    return 0;
}

インライン関数の利点

インライン関数の利点

インライン関数には、マクロと比べて次のような利点があります。

  • 型安全性。
  • デバッグが容易(スタックトレースに表示されます)。
  • 予期しない展開エラーが発生しません。

マクロとインライン関数の使い分け

マクロとインライン関数の使い分け

次のような場合はマクロを使用します。

  • 単純な定数を定義する場合。
  • 小規模なテキスト置換を行う場合。

次のような場合はインライン関数を使用します。

  • 複雑な処理を行う場合。
  • 型安全性を確保する場合。

まとめ

まとめ

このレッスンでは、次のことを学びました。

  • マクロを定義して使用する方法。
  • マクロの制限。
  • インライン関数がより安全な代替手段になる仕組み。

次は、条件付きコンパイルについて学びます。

マクロとインライン関数 — イラスト10

よくある質問

「マクロとインライン関数」レッスンは無料ですか?

はい。「マクロとインライン関数」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C Academyコースには全3レッスンが含まれています。

「マクロとインライン関数」で何を学びますか?

マクロ定義と、関数に対する利点について学びます ブラウザで直接実行するハンズオンコードでC Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。

「マクロとインライン関数」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC Academyレッスンでコードを書いて実行できますか?

はい。すべてのC Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Cプリプロセッサの仕組み
  2. マクロとインライン関数
  3. 条件付きコンパイル
← C Academyに戻る