本書は,弊社のシステム上で Compaq C プログラミング言語を使用するための参照情報について説明します。 Compaq C は,OpenVMS VAXシステム, OpenVMS Alphaシステム,および Tru64 UNIXシステム用の ISO/ANSI 規格に準拠した C コンパイラです。Tru64 UNIX は Alpha プロセッサ上で動作します。
Compaq CはISO (国際標準化機構)のC規格(ISO 9899:1990 [1992]),以前の『American National Standard for Information Systems-Programming Language C』(ドキュメント番号: X3.159-1989)に準拠しています。コマンド行オプションを使用することにより, コモン仕様の C 言語 (Kernighan と Ritchieの C 言語) および VAX C を含む旧形式の C 言語との適合性を有する Compaq Cを使用することができます。
本書は,American National Standard による C プログラミング言語用の Information Systems X3J11 委員会の規格 (本書では ANSI C 規格と呼ぶ)に基づいています [1]。 本書では,すべてのライブラリ関数と ANSI C 規格に対する C 言語機能拡張についても説明しています。
本書は,Compaq C (以前の DEC C)に関する参照情報を必要とするプログラマを対象にしています。 本書ではタスク指向またはプラットフォーム固有の情報についてはほとんど触れていません。 こういった情報については,プラットフォームに固有のCompaq Cのマニュアル(OpenVMSシステム用のユーザーズ・ ガイドおよびオンライン・ヘルプ,またはTru64 UNIXシステム用のプログラミング・ ガイドおよびリファレンス・ページ)を参照してください。
ANSI C規格は,C言語の仕様が明確でないために発生する問題を処理することを目的として, プログラム開発者とC言語に精通したユーザから構成される委員会によって作成されました。 このような問題は主として,異機種のマシン間でのプログラムの移植性に関連するものでした。 この委員会では, 構文と意味があいまいな領域,または確定していない領域についてC 言語を分析し,正確な定義のみをC言語構造に採用しました。その結果, 不明瞭な点がなくなり,マシンに依存しない定義になりました。
ANSI C規格には,次のように記述されています。
「形式を指定し,Cプログラミング言語で表現するプログラムの解釈を確立します。ANSI C 規格の目的は,さまざまなコンピューティング・システム上におけるC 言語プログラムについての移植性,信頼性,保守性および効果的な実行を促進することです。 」
ANSI C規格では以下の項目について明記しています。
ANSI C規格では以下の項目については明記していません。
本書は,Compaq Cバージョン6.5の以下の新しい言語機能を反映して改訂されました。
_nm
" 接尾語を#pragma
名の後ろに追加し,
そのプラグマのマクロ展開を抑制することができます。
Compaq Cバージョン6.4で導入された
"_m
" 接尾語と反対です(第8.5節)。
_Pragma
演算子のサポートが追加され,
マクロ展開によって#pragma
命令を効果的に生成できるようになりました
(第6.4.9項)。
#pragma extern_prefix
プリプロセッサ命令に追加されました。
これらのキーワードは,コンパイラが省略時のRTL接頭語を
プラグマ命令で指定された名前に適用するかどうかを制御します。
本書は,以下に示す章および付録から構成されています。
第1章では,C言語の要素について説明します。
第2章では,C言語の基本的な概念について説明します。
第3章では,C言語のデータ型および型修飾子について説明します。
第4章では,Compaq Cで使用する識別子の宣言について説明します。 この章では, 定数,変数,構造体,共用体,ポインタ,および配列の宣言について説明します。
第5章では,関数呼出し,関数の宣言, 関数定義, 関数の仮引数,および関数の実引数について説明します。
第6章では,C言語で構築できる式の種類について説明します。 単項演算子,2項演算子,条件演算子,1次演算子,および後置演算子を含むC 言語で使用できる演算子の有効性についても説明します。
第7章では,フロー制御,条件付き実行, ループ設定, および割込みを行うC文について説明します。
第8章では,C前処理命令およびあらかじめ定義されたマクロの使用目的について説明します。
第9章では,ヘッダ・ファイルにより用意されたANSI C 標準ライブラリの関数,マクロ,および型について説明します。
付録 Aでは,C言語構成に関するすべての構文をまとめて示します。
付録 Bでは,ANSI C 規格に対する拡張や例外を含む, Compaq CのANSI規格に準拠した範囲について説明します。
付録 Cでは,ASCII文字集合の各文字に対するASCII の8進数,10進数,および16進数値を記載します。
付録 Dでは,コモンC適合オプションを使用して Compaq CがサポートするコモンC の言語機能拡張を記載します。
付録 Eでは,VAX C適合オプションを使用して Compaq CがサポートするVAX Cの言語機能拡張を記載します。
次は,Compaq C のプログラミングを行う際に役に立つ資料です。
本書は,OpenVMS オペレーティング・システム上で Compaq C プログラムを開発およびデバッグするために必要な情報について説明します。 また,C プログラムを OpenVMS および他のオペレーティング・システム間で移植するための情報以外に, OpenVMS システムに固有のCompaq C機能についても記述します。
OpenVMS で取り込む C ライブラリ関数に関する完全な参照情報について説明します。
このリファレンス・ページでは,Tru64 UNIX システム上の Compaq C で使用できる cc コマンド行オプションについて説明します。
このドキュメント・セットは,Tru64 UNIX オペレーティング・ システムとそのユーティリティについて説明します。次のマニュアルが特に役に立ちます。
本書では,Tru64 UNIXオペレーティング・システム上でC プログラムの開発およびデバッグを行う際に必要な情報を含め, Tru64 UNIXのプログラミング環境について説明します。 本書には,cc(1) リファレンス・ページとともに, Tru64 UNIX システムに固有な Compaq C 機能についての記述もあります。
Tru64 UNIXオペレーティング・システムで取り込むCライブラリ関数に関する完全な参照情報について説明します。
1999年12月にISOから出版され,2000年4月にANSI規格として採用された, C99規格。
このドキュメントは,
本書は,X3J11規格委員会によるC言語の分析結果です。本書は,C言語に精通したプログラマを対象にANSI C
言語に関する高度な技術について記述しています。
本書はANSI規格が最終的に決定される前に発行された本ですが,現在でもC
言語のリファレンスとして貴重なものです。
ANSI Cの言語機能および拡張機能は『The C Programming Language, 2nd Edition
』で定義されているよりもさらに増加しているため,
Compaq Cの記述に関しては本書を参照してください。
本書では,以下の表記法を使用します。
表記法 | 意味 |
---|---|
OpenVMS システム | 特に断らないかぎり, OpenVMS VAX および OpenVMS Alpha システムのことを表します。 |
<Return> | <Return>は端末上のReturnキーを1回押すことを表します。 |
Ctrl/X | Ctrl/X は,Ctrlキーを押したまま指定の端末文字キー(X)を押すことを表します。 |
float x;
. . . x = 5; | 垂直方向の省略記号は,プログラムのテキストまたはプログラム出力の一部を省略していることを表します。 したがって,例中では記述内容に関連した部分しか表示されません。 |
option, . . .
| 水平方向の省略記号は,仮引数,オプション,または値を追加入力できることを表します。 ただし,省略記号の前のコンマは後続する各項目の区切り文字です。 |
syntaxopt | オプションの構文要素は,略語 optを下に書き添えて示します。本書の各節に記載されている構文図は, 完全な構文を判断するために付録 A の参照が必要になる場合があります。たとえば,ANSI C規格の構文は潜在的な 代入式として定数を取り込みます。 |
記憶域クラス指定子:
auto static register | 構文定義で別の行にある各項目は,相互に排他的な代替項目です。 |
auto 記憶域クラス . . .
fprintf 関数 . . . | モノスペースでの印字は, 言語キーワード,別々にコンパイルした外部関数名とファイル名, 構文サマリ,および各例で紹介する変数または識別子の参照を示します。 |