C 言語識別子には 3 つのタイプがあります: 1. キーワード (C 言語によって指定された特定の意味を持つ文字列であり、多くの場合予約語とも呼ばれます); 2. 事前定義識別子 (システム識別子によって事前定義されています)関数ライブラリ内の関数名、マクロ定義、型エイリアスなど; 3. ユーザー定義識別子は、ユーザーが必要に応じて定義する識別子であり、通常、変数、関数、配列などに名前を付けるために使用されます。ユーザー識別子がキーワードと同じ場合はコンパイル時にエラーが発生し、事前定義された識別子と同じ場合はコンパイル時にエラーは発生しませんが、事前定義された識別子の本来の意味は失われます。
このチュートリアルの動作環境: Windows7 システム、C99 バージョン、Dell G3 コンピューター。
コンピュータ プログラミング言語では、識別子はプログラミング時にユーザーが使用する名前であり、変数、定数、関数、ステートメント ブロックなどに名前を付け、名前と用途の関係を確立するために使用されます。通常、識別子は文字、数字、その他の文字で構成されます。
C 言語識別子の種類
C 言語識別子には、キーワード、ユーザー識別子、および事前定義された識別子が含まれます。 C 言語では、識別子は文字、数字、アンダースコアのみで構成できると規定されており、最初の文字は数字ではなく文字またはアンダースコアでなければなりません。
1. キーワード
キーワードは、C 言語で指定された特定の意味を持つ文字列で、通常、int、char、long、float などの予約語とも呼ばれます。 、無署名など。定義する識別子はキーワードと同じであってはなりません。同じでない場合、エラーが発生します。
キーワードは特別な意味を持つ識別子として理解することもできますが、これらはシステムによって使用されており、現在は使用できません。
標準 C 言語では 32 のキーワードが指定されています:
キーワード |
説明 |
auto |
自動変数の宣言 |
##short | 短整数変数または関数の宣言 |
##int
整数変数または関数を宣言します |
|
long
長整数変数または関数を宣言します |
|
float
浮動小数点変数または関数を宣言します |
| #double
倍精度変数または関数を宣言します | #char |
文字変数または関数の宣言
| #struct | 構造体変数または関数の宣言
#union |
共有データ型の宣言 |
enum |
列挙型の宣言 |
typedef |
データ型のエイリアスに使用されます |
const |
読み取り専用変数の宣言 |
unsigned |
符号なし型の変数または関数を宣言します |
#signed#符号付き型の変数または関数を宣言します |
| #extern
宣言された変数は他のファイルで宣言されます |
| register
宣言されたレジスタ変数 |
| static
静的変数の宣言 |
| volatile
プログラム実行中に変数を暗黙的に変更できることを示します |
| void
戻り値やパラメーターのない関数を宣言し、型なしポインターを宣言します |
#if |
条件文
|
else |
条件文否定分岐 (if とともに使用)
|
switch |
switch 文の場合
|
case |
Switch ステートメント ブランチ
|
for |
A ループ ステートメント
| #do | ループ文のループ本体
| while | ループ文のループ条件
| goto | 無条件ジャンプ ステートメント
##Continue | #現在のループを終了し、次のサイクルを開始 |
break
現在のループから抜け出す |
|
default
switch ステートメントの「other」ブランチ |
|
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 ビデオ チュートリアル 」
以上がC言語にはどのような種類の識別子があるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。