大文字と小文字は区別される。別の識別子として認識される。予約語は使用できない。識別子の一部に予約語を含めることはできる。予約語とはC言語において固有の意味を持つ単語です。そのため、予約語は識別子として用いることができません。C言語の予約語を以下に示します。変数とは、プログラムで扱われる数値や文字列などの値を一時的に記憶しておく領域のことです。変数を識別するために、ひとつひとつの変数に固有の名前を付けておきます。これを変数名といいます。変数を使用する前に、どのような変数を使用するか、その変数名や変数に記憶できるデータ型を明らかにしておくことを変数の宣言といいます。言語で変数を宣言する書式を次に示します。;記憶クラスおよび初期値は省略することができます。記憶クラスおよびデータ型が同じ変数は、カンマで区切って複数宣言することができます。スタック領域に変数の領域が確保される。n;変数を宣言する際、記憶クラスの指定を省略した場合は自動変数となる。プログラム実行中に常に同じ場所に配置され、値を保持します。静的変数を宣言する例を次に示します。n;静的変数を宣言する際、明示的に初期化を行わなければ、初期値は0になります。変数の領域が確保される物理的な記憶装置は主記憶装置である。主記憶装置よりもCPU内のレジスタの方が高速にアクセスできるため、変数の領域を確保する物理的な記憶装置をレジスタに指定した変数がレジスタ変数である。可能な限りレジスタに確保するよう要求するだけで、必ずしもレジスタに確保される保障はない。(共用体)は、同一のデータ領域を複数の異なるデータ型が共用するようにしたものです。変数宣言のリスト};以下の場合には、タグ名を省略することが可能です。変数宣言のリストの中に共用体を入れて、入れ子構造にすることも可能です。共用体内の最初のメンバの初期化が可能です。};typedeftypdefは、既存の型に対して新しい名前を付けるときに使用します。新しい型名;新しい型名を付けると、既存の型名のように使用することができます。data;この例は、次のように変数を宣言するのと同じです。data;型名の代りに、構造体や共用体の宣言を指定することもできます。新しい型名;これらは次のように記述することもできる。修飾子はデータ型を修飾します。定数を表す修飾子です。関数のプロトタイプ宣言を見てみましょう。コピー元の領域であり、コピー後も内容は変化しません。修飾子が付いています。コピー先の領域であり、コピー後は内容が変化します。修飾子が付いていません。volatilevolatile修飾子は最適化を抑制するオブジェクトを宣言します。修飾子が無ければ、Cコンパイラーにより最適化が行われます。ソースプログラムではループの中で変数が0に等しいかどうか比較していますが、変数が0になることは無いのでCコンパイラーの最適化機能で無駄な比較が削除されることがあります。このため無条件で無限ループとなります。値が0になるとループを脱出します。これは、タスク間の同期制御に利用できます。標準Cライブラリ関数C言語のライブラリには次の関数がある。dlopenで取得したハンドルをクローズする。動的ロード関数が失敗したときにエラーメッセージを取得する。共有ライブラリを動的にロードする。共有ライブラリ関数へのポインタを返す。日付と時刻を取得する。日付と時刻を設定する。C言語の文字列C言語には次の文字列関数が用意されている。文字列をn文字目までコピーする。2つの文字列を連結する。文字列をn文字目までコピーする。文字列をトークンに分割する。文字列をn文字目まで比較する。*s2);引数s1で指定した文字列の中に引数s2で指定した区切り文字(文字列形式で複数種類の文字を指定可能)が存在すれば、全てNUL文字('\0')に置き換えます。1つの文字列を区切り文字によって複数の文字列に分割します。この分割されたそれぞれの文字列をトークンといいます。