C プリプロセッサ
C言語プリプロセッサディレクティブ (Preprocessor Directives) リファレンス。
#define
定数 (const) またはマクロ (macro) を定義するために使用します。
#define PI 3.14159
#define SQUARE(x) ((x)*(x))#ifdef
macro が定義されている場合、続くコードブロックをコンパイルします。
#define DEBUG
#ifdef DEBUG
printf("Debug mode is on\n");
#endif#ifndef
macro が定義されていない場合、続くコードブロックをコンパイルします。
通常、#define と一緒に使用して、ヘッダファイルの多重インクルードを防ぎます。
#ifndef _MYHEADER_H
#define _MYHEADER_H
// ヘッダファイルの内容
#endif#include
他のヘッダファイルをインクルードするために使用します。
#include <stdio.h>
#include "myheader.h"#if / #else / #elif / #endif
与えられた条件式に基づいて、続くコードブロックをコンパイルするかどうかを決定します。
#if defined(_WIN32)
// Windows コード
#elif defined(__linux__)
// Linux コード
#else
// その他のプラットフォームコード
#endif#undef
以前定義した macro の定義を取り消すために使用します。
#define MAX 100
// コード
#undef MAX // MAX の定義を取り消す
#pragma
コンパイラ固有のディレクティブで、コンパイラの動作を制御するために使用します。
#pragma once // ヘッダファイルが一度だけインクルードされることを保証 (#ifndef trick の代替)
#pragma omp parallel for // OpenMP による for ループの並列化
#error
プリプロセス段階でエラーメッセージを発行します。通常、特定の条件が満たされていないことを検出するために使用します。
#if (__cplusplus < 201103L)
#error "This code requires C++11 or later"
#endif#line
現在のソースコードの位置を再設定するために使用します。主にデバッグ目的で使用されます。