用語集

ISO/JIS/ANSI

ISO、JIS、ANSI はそれぞれ国際標準化機構 (International Organization for Standardization)、日本工業規格 (Japanese Industrial Standard)、米国規格協会 (American National Standard Institute) の略称です。C 言語の文法は、これらの規格によって定められています。

Light C for x86 は ANSI X3.159 (C89:1989 年 12 月) に準拠しています。ISO/IEC 9899:1990 Programming Languages-C (C90:1990 年 12 月)、および日本工業規格の JIS X 3010:1993「プログラミング言語 C」も基本的に ANSI X3.159 と同じです。

参照   ISO/JIS/ANSI 規格との互換性

FILE 構造体

ファイルを管理するための構造体で、stdio.h で定義されています。この構造体自体は ANSI 規格ですが、内部 (メンバ) の詳細はコンパイルによって異なります。通常、FILE のメンバを気にかける必要はありません。

Light Macro Assembler

Microsoft Macro Assembler (MS-MASM) V6.0 と互換性のある MS-DOS 用のマクロ アセンブラです。https://www.tamasoft.co.jp/lasm/ から体験版を入手できます。

wchar_t

16 ビットの文字コードです。「文字リテラル」を参照してください。

アライン (境界整列)

データのアドレス、サイズ、オフセットなどを切りのよい値に揃えることを意味する言葉です。

一般にデータはなるべく切りのよいアドレスに置くと速度が向上します。16 ビット プロセッサでは、通常、2 で割り切れるアドレスにデータを置くと、アクセス時間が短くなります。→ -alignloc-alignst

errno

エラーが発生した場合に、エラー コードが格納される int 型の広域変数です。この変数に設定されるエラー値には、定義範囲外の引数が渡されたことを示す EDOM、結果が範囲外になったことを示す ERANGE などがあります。EDOM と ERANGE は ISO/JIS/ANSI 規格です。これらの値は errno.h で E から始まる名前に定義されています。

errno 変数は、スタートアップ ルーチンで 0 に初期化されます。その後、いずれかのライブラリ関数でエラーが発生すると、0 以外のエラー値が書き込まれます。errno の値は、他のエラーで上書きされるか、プログラムで明示的に値を代入しない限り、変化しません。

環境変数

MS-DOS、Windows、UNIX などのオペレーティング システムには、「環境変数」と呼ばれる設定手段があります。一般に環境変数を設定するには、次のように入力します。

set <variable-name>=<value>

環境変数の内容を消去するには、次のように入力します。

set <variable-name>=

環境変数の内容を表示するには、次のように入力します。

set

たとえば、環境変数 lclib に「Light C\lib」を設定するには、次のように入力します。

set lclib=Light C\lib

オペレーティング システムの起動時に環境変数を自動的に設定することもできます。それには、MS-DOS および Windows 95/98 の場合は、起動ドライブのルート ディレクトリにある autoexec.bat に上のうような set コマンドを記述します。Windows NT の場合は、コントロール パネルの [システム] アプレットを使用します。

逆ポーランド記法

演算の対象値を先に、演算子を後に書く記法です。たとえば sizeof a を逆ポーランド記法で書くと a sizeof となり、a + b を逆ポーランド記法で書くと a b + となります。後者は「ab を足す」と読めるので、日本語の文法に似ています。

コマンド プロンプト

コマンドライン プログラムを実行するためのウィンドウです。Windows XP でコマンド プロンプトを開くには、[スタート] → [プログラム] → [アクセサリ] → [コマンド プロンプト] を選択します。

終了コード (OS 戻り値)

オペレーティング システム (OS) に返される整数で、MS-DOS では 0 〜 255 です。通常、0 は正常終了を表し、1 以上は異常終了を表します。

作成するプログラムでは、main() の戻り値または exit() の引数で終了コードを指定できます。Light C コンパイラ自体の終了コードは、オプション -rw で指定できます。

MS-DOS では、"IF ERRORLEVEL" バッチコマンドなどを使用して、プログラムの終了コードを判定できます。

ヌル終端文字列 (C 言語の文字列)

末尾に値 0 のバイトが付加された文字列です。通常、C 言語の「文字列」という用語は、このヌル終端文字列を意味します。

多バイト文字列 (マルチバイト文字列)

2 バイト以上で表される文字が混在する文字列のことで、日本で通常使用されている Shift-JIS 文字列は、その一例です。→ ワイド文字

汎整数拡張 (integral promotion)

サイズが int のサイズより小さい整数を式の中で使用したり関数に渡したりすると、自動的に int または unsigned int に変換されること。次のように変換されます。

変換前変換後
signed char int
unsigned char int

たとえば、int func( signed char a, signed char b ) { return a + b; } という関数を func( 127, 127 ) で呼び出すと、a + b(int)a + (int)b のように計算されるため、結果は -2 ではなく 254 になります。

標準入出力

プログラムで FILE 構造体を使用すると、FILE 関連のライブラリ モジュールがリンクされ、stdin、stdout、stderr、stdprn の 4 つの標準入出力が自動的に用意されます。

名前FILE* 型変数アクセス モードDOS ハンドル通常の連結先
標準入力 stdin "r"0キーボード
標準出力 stdout "w"1ディスプレイ
標準エラー出力 stderr "w"2ディスプレイ
標準プリンタ出力 stdprn "w"4プリンタ

stdin 〜 stdprn は、stdio.h およびライブラリ モジュール fbuf.c で FILE* 型の広域変数として定義されています。いずれもテキスト モードで、stdin 以外はバッファリングされません。
scanf( "%d", &i ); // 標準入力から取得
fscanf( stdin, "%d", &i ); // 同上
printf( "Hello\n" ); // 標準出力に出力
fprintf( stdout, "Hello\n" ); // 同上
fprintf( stderr, "Hello\n" ); // 標準エラー出力に出力
fprintf( stdprn, "Hello\f" ); // プリンタに出力して改ページ

メモ   標準補助入出力 stdaux は、アクセス モードを一意に決められないため、初期状態では定義されていません。ただし、fbuf.c をコメントに従って編集すれば、簡単に追加できます。

ヘッダー ファイル

#include 文で取り込むためのファイルで、一般にはマクロ定義、関数のプロトタイプ宣言広域変数の宣言などを行います。

C コンパイラには stdlib.h、string.h などいくつかの標準ヘッダー ファイルが付属しています。

リテラル

リテラル (literal)」とは「そのもの」という意味で、「値そのものを記載したもの」というほどの意味です。整数リテラル浮動小数点数リテラル文字リテラル文字列リテラルがあります。「定数」と似ていますが、「定数」には const 変数も入る可能性があるので「リテラル」という言葉で区別しています。

ホワイトスペース (空白類)

' ' (20)、'\t' (09)、'\n' (0A)、'\v' (0B)、'\f' (0C)、'\r' (0D) のいずれかです。isspace 関数で判定できます。