Cのマクロとプリプロセッサ
Cプリプロセッサはコンパイラの一部ではありませんが、コンパイルプロセスの別のステップです。簡単に言うと、Cプリプロセッサは単なるテキスト置換ツールであり、実際のコンパイルの前に必要な前処理を行うようにコンパイラに指示します。 CプリプロセッサをCPPと呼びます。
すべてのプリプロセッサコマンドは、ハッシュ記号(#)で始まります。これは最初の非ブランク文字である必要があり、読みやすくするために、プリプロセッサディレクティブは最初の列で開始する必要があります。次のセクションでは、すべての重要なプリプロセッサディレクティブを一覧表示します-
Sr.No | ディレクティブと説明 |
---|---|
1 | #define プリプロセッサマクロを置き換えます。 |
2 | #include 別のファイルから特定のヘッダーを挿入します。 |
3 | #undef プリプロセッサマクロの定義を解除します。 |
4 | #ifdef このマクロが定義されている場合はtrueを返します。 |
5 | #ifndef このマクロが定義されていない場合はtrueを返します。 |
6 | #if コンパイル時の条件が真であるかどうかをテストします。 |
7 | #else #ifの代替。 |
8 | #elif 1つのステートメントで#elseと#if。 |
9 | #endif プリプロセッサを条件付きで終了します。 |
10 | #error stderrにエラーメッセージを出力します。 |
11 | #pragma 標準化された方法を使用して、コンパイラに特別なコマンドを発行します。 |
プリプロセッサのいくつかの例-
次の例を分析して、さまざまなディレクティブを理解してください。
#define MAX_ARRAY_LENGTH 20
このディレクティブは、MAX_ARRAY_LENGTHのインスタンスを20に置き換えるようにCPPに指示します。読みやすさを向上させるために定数に#defineを使用します。
#include <stdio.h> #include "myheader.h"
これらのディレクティブは、CPPにシステムライブラリからstdio.hを取得するように指示します。 テキストを現在のソースファイルに追加します。次の行は、CPPに myheader.hを取得するように指示しています。 ローカルディレクトリからコンテンツを現在のソースファイルに追加します。
#undef FILE_SIZE #define FILE_SIZE 42
これは、既存のFILE_SIZEの定義を解除し、42として定義するようにCPPに指示します。
#ifndef MESSAGE #define MESSAGE "You wish!" #endif
MESSAGEがまだ定義されていない場合にのみMESSAGEを定義するようにCPPに指示します。
#ifdef DEBUG /* Your debugging statements here */ #endif
DEBUGが定義されている場合、囲まれたステートメントを処理するようにCPPに指示します。これは、コンパイル時に-DDEBUGフラグをgccコンパイラーに渡す場合に役立ちます。これによりDEBUGが定義されるため、コンパイル中にオンザフライでデバッグのオンとオフを切り替えることができます。
事前定義されたマクロ-
ANSI Cは、いくつかのマクロを定義しています。それぞれがプログラミングで使用できますが、事前定義されたマクロを直接変更しないでください。
Sr.No | マクロと説明 |
---|---|
1 | __ DATE __ 「MMMDDYYYY」形式の文字リテラルとしての現在の日付。 |
2 | __ TIME __ 「HH:MM:SS」形式の文字リテラルとしての現在の時刻。 |
3 | __ FILE __ これには、現在のファイル名が文字列リテラルとして含まれます。 |
4 | __ LINE __ これには、現在の行番号が10進定数として含まれています。 |
5 | __ STDC __ コンパイラがANSI規格に準拠している場合は、1として定義されます。 |
例
#include <stdio.h> int main() { printf("File :%s\n", __FILE__ ); printf("Date :%s\n", __DATE__ ); printf("Time :%s\n", __TIME__ ); printf("Line :%d\n", __LINE__ ); printf("ANSI :%d\n", __STDC__ ); }
出力
File :test.c Date :Jun 2 2012 Time :03:36:24 Line :8 ANSI :1
-
MicrosoftExcelでマクロを作成して実行する方法
Microsoft Excelでは、マクロはVisual Basicプログラミング言語で記録され、いくつかの方法で実行できます。マクロを実行するには、[開発者]タブの[マクロ]コマンドをクリックするか、組み合わせショートカットキーを使用するか、グラフィックオブジェクトをクリックするか、クイックアクセスツールバーのボタンをクリックします。このチュートリアルでは、Excelでマクロを作成して実行する方法を説明します。 マクロとは何ですか? マクロは、タスクを自動化するために使用できるアクションまたはアクションのセットです。マクロは、タスクを繰り返し実行することから解放されるために作成され、これら
-
Pythonの3と7
正の数nがあるとすると、3の非負の倍数と7の非負の倍数を合計することでnを作成できることを確認する必要があります。 したがって、入力が13のような場合、13は1 * 7 + 2 * 3 =13 と記述できるため、出力はTrueになります。 これを解決するには、次の手順に従います- 0からn+1の範囲のiの場合、7ずつ増やします。 n-iが3で割り切れる場合、 Trueを返す Falseを返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self, n):