プリプロセッサディレクティブをC言語で説明する
プリプロセッサは、コンパイラを通過する前にソースコードを処理するプログラムです。さまざまなコマンドラインまたはディレクティブの制御下で動作します。
プリプロセッサは、メイン行の前にソースプログラムに配置され、1列目のsymbol#で始まり、最後にセミコロンは必要ありません。
一般的に使用されるプリプロセッサディレクティブは-
です。- #define、
- #undef、
- #include、
- #ifdef、
- #endif、
- #if、
- #else…。
プリプロセッサディレクティブは3つのカテゴリに分類されます-
- マクロ置換ディレクティブ。
- ファイルインクルードディレクティブ。
- コンパイラ制御ディレクティブ。
マクロ置換ディレクティブ
構文と例は次のとおりです-
構文
以下に、マクロ置換ディレクティブの構文を示します-
#define identifier string
例 −単純なマクロ:#define MAX 500
引数付きのマクロ-#definesqrt(x)x * x
ネストされたマクロ-#defineA10
#define B A + 1
ファイルインクルードディレクティブ
構文と例は次のとおりです-
構文
以下に、ファイルインクルードディレクティブの構文を示します-
#include “filename” or #include<filename>
たとえば、
#include<stdio.h> #include "FORM.C"
コンパイラ制御ディレクティブ
これらは、コンパイラのアクションを制御するために使用されます。 C pre =Processorは、条件付きコンパイルと呼ばれる機能を提供します。これを使用して、プログラム内の特定の行または行のグループに基づいてオンまたはオフを切り替えることができます。
たとえば、#ifdefと#ifndef
-
ユニオンにC言語でのポインタを説明する
ユニオンはメモリロケーションと呼ばれ、さまざまなデータ型のいくつかの変数によって共有されます。 構文 構文は次のとおりです- union uniontag{ datatype member 1; datatype member 2; ---- ---- datatype member n; }; たとえば、 union sample{ int a; float b; char c; }
-
C言語でのポインタアクセスの概念を説明する
ポインタは、他の変数のアドレスを格納する変数です。 ポインタの宣言、初期化、アクセス 次のステートメントを検討してください- int qty = 179; ポインタの宣言 int *p; 「p」は、別の整数変数のアドレスを保持するポインタ変数です。 ポインタの初期化 アドレス演算子(&)は、ポインタ変数を初期化するために使用されます。 int qty = 175; int *p; p= &qty; 文字列の配列内の要素にアクセスする際にポインタがどのように役立つかの例を考えてみましょう。 このプログラムでは、特定の場所に存在する要素にアクセスしようとしています。操