C言語にはどのような種類の識別子があるのでしょうか?

青灯夜游
リリース: 2022-11-28 19:03:05
オリジナル
19196 人が閲覧しました

C 言語識別子には 3 つのタイプがあります: 1. キーワード (C 言語によって指定された特定の意味を持つ文字列であり、多くの場合予約語とも呼ばれます); 2. 事前定義識別子 (システム識別子によって事前定義されています)関数ライブラリ内の関数名、マクロ定義、型エイリアスなど; 3. ユーザー定義識別子は、ユーザーが必要に応じて定義する識別子であり、通常、変数、関数、配列などに名前を付けるために使用されます。ユーザー識別子がキーワードと同じ場合はコンパイル時にエラーが発生し、事前定義された識別子と同じ場合はコンパイル時にエラーは発生しませんが、事前定義された識別子の本来の意味は失われます。

C言語にはどのような種類の識別子があるのでしょうか?

このチュートリアルの動作環境: Windows7 システム、C99 バージョン、Dell G3 コンピューター。

コンピュータ プログラミング言語では、識別子はプログラミング時にユーザーが使用する名前であり、変数、定数、関数、ステートメント ブロックなどに名前を付け、名前と用途の関係を確立するために使用されます。通常、識別子は文字、数字、その他の文字で構成されます。

C 言語識別子の種類

C 言語識別子には、キーワード、ユーザー識別子、および事前定義された識別子が含まれます。 C 言語では、識別子は文字、数字、アンダースコアのみで構成できると規定されており、最初の文字は数字ではなく文字またはアンダースコアでなければなりません。

1. キーワード

キーワードは、C 言語で指定された特定の意味を持つ文字列で、通常、int、char、long、float などの予約語とも呼ばれます。 、無署名など。定義する識別子はキーワードと同じであってはなりません。同じでない場合、エラーが発生します。

キーワードは特別な意味を持つ識別子として理解することもできますが、これらはシステムによって使用されており、現在は使用できません。

標準 C 言語では 32 のキーワードが指定されています:

##short短整数変数または関数の宣言 ##int long float#double倍精度変数または関数を宣言します文字変数または関数の宣言#struct構造体変数または関数の宣言#signed #extern宣言された変数は他のファイルで宣言されますregister宣言されたレジスタ変数 static静的変数の宣言volatileプログラム実行中に変数を暗黙的に変更できることを示しますvoid戻り値やパラメーターのない関数を宣言し、型なしポインターを宣言します条件文条件文否定分岐 (if とともに使用)switch 文の場合Switch ステートメント ブランチA ループ ステートメント#doループ文のループ本体whileループ文のループ条件 goto無条件ジャンプ ステートメント#現在のループを終了し、次のサイクルを開始breakdefault sizeof#returnサブプログラム return ステートメント (パラメータありまたはパラメータなし) ループ条件

2. 事前定義された識別子

関数ライブラリ内の関数名、マクロ定義、型エイリアス (typedef) など、C 言語でシステムによって事前に定義された識別子。

事前定義された識別子は、関数「format Output」(完全な英語名と略語: printf)、「format input」(完全な英語名と略語: scanf)、sin、isalnum などの明確な意味を持つ特性を持っています。 、など待ってください。

事前定義された識別子をユーザー識別子として使用できますが、これによりシステムによって指定された本来の意味が失われ、不適切に使用するとプログラム エラーが発生します。

注: C 言語関数ライブラリ内の関数名は、ユーザー定義の変数名になる可能性があります。 ! !

3. ユーザー定義の識別子

必要に応じてユーザー定義の識別子。通常、変数、関数、配列などに名前を付けるために使用されます。ユーザー識別子がキーワードと同じ場合はコンパイル時にエラーが発生し、事前定義された識別子と同じ場合はコンパイル時にエラーは発生しませんが、事前定義された識別子の本来の意味が失われるか、結果が正しく動作しません。間違っている可能性があるため、事前定義された識別子 通常、ユーザー識別子としては使用されません。

C 言語では、ユーザー定義の識別子は文字、数字、アンダースコア (A ~ Z、a ~ z、0 ~ 9、_) と最初の文字で構成される文字列にすることが規定されています。文字またはアンダースコアである必要があります。

(1) 識別子 は、英語の大文字と小文字、アンダースコア (_) のみで始めることができ、他の文字や数字で始めることはできません。 。

たとえば、次は間違った例です:

int %a;//错误,标识符不能以符号开头
int 8C[8];//错误,不能以数字开头
ログイン後にコピー

(2) 識別子には、英語の大文字と小文字、アンダースコア、およびアラビア数字のみを含めることができます。 ですが、 をアラビア数字 で始めることはできません。

int a8;//正确
int _adf589S_5;//正确
ログイン後にコピー

(3)識別子大文字と小文字を区別する

C言語では、大文字と小文字は別の文字とみなされます。そのため、識別子はABC と abc で表されるものは異なります (Acd と acd、caDd と cadd、_8Fc9 と _8fc9 はすべて異なる識別子です)。

(4)識別子をキーワードにすることはできません。

int float;//错误,float是关键字。
int Float;//正确
ログイン後にコピー

(5)ANSI 標準では、識別子 は任意の長さ にできると規定されていますが、外部名は少なくとも最初の 6 文字で一意に区別できる必要があります。大文字と小文字は区別されません。これは、一部のコンパイラー (IBM PC の MS C など) は最初の 6 文字しか認識しないためです。

これらの厳格なルールに加えて、観察、読み取り、保守を容易にするために、特定の意味を持つ識別子に名前を付けることが最善です。

//定义某长方体的长度、宽度和高度
int a;//高度
int b;//宽度
int c;//高度
ログイン後にコピー
は次の定義に変更できます:

int c_Long;
int c_Width;
int c_Height;
ログイン後にコピー
関連する推奨事項: 「

C ビデオ チュートリアル

キーワード 説明
auto 自動変数の宣言
整数変数または関数を宣言します
長整数変数または関数を宣言します
浮動小数点変数または関数を宣言します
#char
#union 共有データ型の宣言
enum 列挙型の宣言
typedef データ型のエイリアスに使用されます
const 読み取り専用変数の宣言
unsigned 符号なし型の変数または関数を宣言します
#符号付き型の変数または関数を宣言します
#if
else
switch
case
for
##Continue
現在のループから抜け出す
switch ステートメントの「other」ブランチ
データ型の長さの計算

以上がC言語にはどのような種類の識別子があるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート