WATCOM C / 386 のモジュールてはマクロ GLOBAL unix の C プログラムを WATCOM は定義されず Fig. 3 のソースコード C / 386 に移植していたのですが , w と同等になります。 凵 NK を使っていて ひとつのモジュールては , マク redefinition error ロ DEFINE HERE は , このヘッダ というエラーが起こりました。ど ファイルをインクルードする前に うしてですか ? 定義されていなければなりません。 これは , コマンドラインのマクロ A ご質間のような = ラーは , 古 定義オプション , または Fig. 4 のよ い unix や MS-C のプログラムを移 うなコーディングによって行えま 植するときによく起こります。 す。 この問題は , 初期の unix のリン 力の性質から生じました。初期の Q C のコードて、は , 通常ヘッダファイ WATCOM C / 386 で ルの中に Fig. 1 のような定義が含 Stack overflow まれていて , このようなヘッダフ というメッセージがでたときには ァイルが複数のソースコードにイ どうすればいいでしようか ? ンクルードされました。 A WATCOM ンパイラは , コンノヾイラは各モジュールの中 に , 変数の定義を生成し , 複数の よく口一カル変数をレジスタに割 定義をひとつのロードモジュール り当てます。レジスタに割り当て にまとめるときの矛盾を解決する られないときには代わりにスタッ のは , リンカの仕事として扱われ クに割り当てますが , スタックの ていました。すなわち , リンカは 大きさはリンク時に決められるの その中のひとつを定義として使用 て実行中にスタックがその大きさ し , そのほかのすべての変数をそ を越えてしまうことがあります。 のひとつの変数への参照として処 WATCOM C のランタイムライプ 理していました。 ところが , 後に ラリの関数は , スタックの消費量 制定された ANSI C の標準規格て が多いとき , 常にスタックの大き はこの方法は不適切となりました。 さが制限を越えないようにチェッ まず , アプリケーションプログラ 使ってリンク時に WLNIK のディレ WATCOM C コンパイラは ANSI クします。 ムの中にあるリカーシプ関数の量 クテイプ $option stack =size" (si C コンパイラなのて , この旧式の方 WATCOMC のランタイム関数 を最小にすることてす。これは , ze は , スタックの大きさのバイト 法をサポートしていません。その を呼ぶ前にスタックの要求量をチ リカーシプ関数をループを使用す 数てヾ k クをつけてキロバイト単位て 結果 , WLINK が ェックすることはユーザに任され るようにコーディングし直すこと 指定することもてきます ) によっ redefinition error ます。スタックチェックをするオ て行えます。また , スタティック て , スタックの大きさを設定する を起こすことがあります。 ANSI C プションとともにプログラムをコ の配列をうまく再利用すれば関数 ことがてきます。 の標準規格ては , ヘッダファイル ンパイルすると WATCOMC のラ の中て使用されるスタックの量を option stack=5k ての変数の定義はただひとつのモ ンタイム関数を呼ぶ前に十分なス 最小にすることがてきます。しか また , DOS/4G のリンカ GLU の ジュールのみて行われなくてはな タック量があることが確実になり し , それてもデフォルトのスタッ オプション•-stack size" (size はス りません。このため Fig. 2 のように ます。 ク量 ( 4096 バイト ) ては不足するこ タックの大きさのバイト数 ) によっ コーディングすることて対応しま スタックオーノヾフローエラーを とがあります。このような場合 , ても設定てきます。 す。このようにすると , ほとんど 回避する方法はいろいろあります。 WATCOM C リンカ (WLINK) を -stack 5120 Fig. 1 初期の C でヘッダファイル内に記述されていた定義 / * define g10M1 variables * / int line count; int word_count ; int char count ; Fig. 2 変数のニ重定義を回避する ( glob 引 s. h ) #ifdef DEFINE HERE #define GLOBAC #else #define GLOBAL extern #endif / * define global variables * / GLOBAL int 1 ine count; GLOBAL int word count ; GLOBAL int char_count; Fig. 3 ほとんどのモジュールで出力されるコードと同等のソース / * define global variables * / extern int 1 ine count; extern int word count; extern int Char count; Fig. 4 マクロ DEFINE HERE を定義する #define DEFINE HERE #include " glob s. h" lnformation from Compiler Makers 171
. 04 ど 10 ツ DOS/4G 、 38 例 DOS-Extender 、 WINDOWS 、 NetWare v3. lx / 3.1xJ 、 AutoCAD ADS 、 PenPoint に対応 / WATCOM C / 386 U9.0 コンノヾイラて作成した 32 ピットアプリケーションプ 【製品仕様】 ログラムに、 32 ピット DOS 工クステンダを組み込む事によって、 32 ピットに 対応機種 : PC ー 9800 シリーズ、 PC / AT 互換機 ( J3100 シリーズ、各社 AX 拡張された最大 4G ( ギカ ) ノヾイトまてのメモリを高速にアクセスする MS ー 仕様機、 PS / 55 シリーズ ) 、 FM 日シリーズ ※但し、 80386 / 486 プロセッサ搭載機に限る。 DOS プログラムを実現します。 【コンバイラの動作環境】 WATCOM C / 386 J9.0 は、「 DOS / 4G 」、「 38 田 DOS-EXTENDE 日」 >MS-DOS V3 」以上 ( 2.6M バイト以上のメモリが必要てす ) 。 の両方の DOS 工クステンダーをサポートします。 PIatform WINDOWS 3 止 3.1 ( 386 ェンハンスド ) 多様化する 32 ピットのプラットホームを 的確にサポート / WATCOM C / 386 J9.0 は、 WINDOWS 3 . 0 / 3.1 用 GIJ ーアプリケーショ プト ンを高速な完全 32 ヒット , コードて実現します。 WATCOM C / 386 09.0 は、インテルの 32 ビット CPIJ アーキテクチャに基 16 ビットの G 』アプリケーションと、 WATCOM C / 386 U9.0 で作成された づく様々なプラットホームをサポートする、 32 ビット開発の標準或いは専用と 32 ビット GIJI アプリケーションの実行速度の差は当社て行ったテスト用プログ して位置づけられるコンバイラてす。 ーへ ラムの最高値て、 10 倍にも及びます。 ( 但し、 WATCOM C / 386 J9.0 には、 現在、 32 ビットの DOS 用アプリケーションの開発を始めとして、Ⅷ NDOWS リソースコンバイラ、アイコンエテイタが含まれていないため、 WINDOWS 用アプリケーションの開発や、 AutoCAD システムのカスタマイズ開発、さ SDK が別途必要です。 ) らに専用コンパイラとして NetWa 「 e 、 PenPoint などの 32 ピットのアプリケ ツ PIatform3 NetWare v3. lx / 3. lxJ ゖーバー用 NLM ) ーション開発や、 80386 / 486 用の組み込みシステム開発等をサポートしますが、 今後、さらにサポートするプラットホームは増え続けて行きます。 32 ビットて主流となるオペレーティング・システム或いはプラットホームが何 WATCOM C / 386 J9.0 は、 NetWa 「 e のサ—JX—NLM (NetWa 「 e Loa であっても、 WATCOM C / 386 J9.0 を開発コンノヾイラとして選ぶ事によっ dable Mod e ) プログラムの開発を実現します。ノベル株式会社が供給す て、未来へのキップを今、手にいれる事ができるのです。 る NetWa 「 e NLM 用 SDK ( ライプラリ ) と、 WATCOM C / 386 J9.0 を 組み合わせる事によって、 NetWa 「 e サーバー用 NLM プログラムが作成でき ます。 WATCOM C / 386 は、 Net ⅵ a 「 e の開発にも使用されており、唯一の NLM ・新鋭 80486 オプティマイジングコードを生成 開発用コンバイラとして採用されています。 WATCOM C / 386 J9.0 では、 80486CPU のスカラ ( 並列処理 ) 機能を考慮したコード の生成も可能になっています。従って、作成された 32 ビットアプリケーションは 80386 PIatform4 AutoCAD(32Ev ト ADS) 及び 80486CPU のそれそれの機能を最大限に利用した、より高速な実行が可能になりま す。 ・業界で初めて ANS ー規格を 100 % 満たしたコンバイラ WATCOM C / 386 U9.0 を使用して、 32 ビット・八イノヾフォマンス CAD シ ANS ー規格との互換性を調べる P 旧 mHa Ⅱバリテーション・スート・テストに完全にバ ステム AutoCAD のユーサカスタマイズが実現てきます。 スした業界初のコンバイラであり、 100 % ANS ー規格を満たしたコンバイラであること が実証されています。 WATCOM C / 386 U9.0 は、 CAD システム最大手オートテスク社の Auto EMic 「 osoft C とのソースレベル互換性 CAD カスタマイス機能 ( ADS ) を利用するユーサーカスタマイズ用 32 ヒット コンバイラの設計において、 16 ピットコンバイラの標準開発言語に位置する MS - 0 V コンバイラとして採用されています。 6.0 との互換性を最重要視したコンバイラてあるため、これまでの MS - C によるリアル モードアプリケーションを 32 ビット・フラットモテルアプリケーションに移行させるた PIatform 32 ビットペン入力 OS ( penp 。 int ) めのアップグレード・コンバイラとして位置づけられます。 ・レジスタ引数による関数コールの最適化 関数コール時の引数の受け渡しに 32 ヒットレジスタを直接使用する事が出来ます。レジ WATCOM C / 386 J9.0 は、 PenPoint 用アプリケーション開発を実現す スタによる引き数の受け渡しは、ユーサ定義関数間だけでなく、 WATCOM C / 386 の る標準且つ唯一の C コンバイラです。ペン入力システムの代表として位置づけ 標準サポートライプラリ関数の全てについても適用てきます。 られる GO 社の 32 ヒット OS 「 PenPoint 」のアプリケーション開発専用コ •Mic 「 osoft C 互換のグラフィックス・日本語処理関数を搭載 ( PC -9801 、 PC/AT のみ ) ンバイラとして OEM 採用もされています。 凵 FEBOATC は、現在日 GH C386 や NDP C/FORTRAN 等の、 80386 / 486 用 32 ビット C/FO 日丁日 AN コンバイラをお持ちの方を対象に下記の様な特別価格で、新バージョン WATCOM C / 386 80386 / 486 コンパイラの U9.0 、 WATCOM FO 日 T 日 AN77 / 386 U9.0 をこ提供致します。この機会に是非 WATCOM C / 386 J9.0 、 FO 日 T 日 AN / 386 J9.0 をお試しいただき、最もパフォーマンスの高い 32 ヒットコンバイラへの 移行をお勧め致します。 @High C386 Ⅵ .6 以降を現在お持ちの方、及び輸入版 WATCOM c / 386 を え 特別販売を実施 現在お持ちの方には WATCOM C / 386 J9.0 を¥ 50 000 で販売致します。 ・輸入版 WATCOM FO 日 T 日 AN77 / 386 を現在お持ちの方には WATCOM FO 日 T 日 AN77 / 386 U9.0 を¥ 128 000 で販売致します。 ・特別販売の申込み受付期間 . 、・その他 ( High C386 Ⅵ .5 以下、 NDP C/FORTRAN 、 Lahey FO 日丁日 AN 、 1992 年 9 月 1 日 ~ 12 月末日迄 ZO 「 tech C ( 十十 ) / 386 等 ) の 386 用 C 、 386 用 FO 日 T 日 AN を現在お持ちの方には ・申込み先 : 株ライフボート営業 1 課 WATCOM C / 386 J9.0 WATCOM FO 日 T 日 AN77 / 386 J9.0 を各々¥ 128 , 000 て販売致しま魂 「トレードイン販売担当」 tel.03-3293-4714 fax. 03-3292-4160 まで直接お申込み下さい。 ※本販売企画の対象コンバイラに FM TOWNS 用 High C386 は含みませんのてこ注意下さい。 ※製品についてのお問い合わせは・ 株式会社 LIFEBOAT 株凵 FEBOAT 営業 1 課 ( Tel.03-3293-4714 ) までこ連絡ください。 * WATCOM は、 WATCOM Systems,Inc. の登録商標です。 * Microsoft, MS. MS- DOS は、 Microft Co 「 p. ・ Copyright 〒 1 01 東京都千代田区神田錦町 3 ー 6 の登録商標です * WINDOWS は、 Microsoft CO 「 p. の商標です。 * AUTOCAD は、オートデスク株式会社の登録商標です。 PHONE : 03 ー 3293 ー 4711 代 FAX : 03 ー 3293 ー 4710 * PenPoint は、 GO corp. の商標です。 * その他、プログラム名、システム名、 CPU 名は一般に各メーカーの登録商標です。 * NetWare は、 NOVELL c. の登録商標です。 く資料請求番号 82 〉 業界に選ばれた 32 ビット標準コンラ 備師 86 価格¥ 198 , 000 WATCOM C 386 J9.0 コン八イラの特長 ミ WATCOM C / 386 への移行のビッグチャンス到来 /
1 QuickC for Windows 対応機種 : Windows/ 英語版 価格 . 32 , 000 円 提供 : 株マイクロソフト Windows 環境下で動作する C コンバ イラ。 Windows 用プログラムのほか に DOS 用プログラム , WindowsDLL か 作成できます。また , DOS 用にコーデ イングされたプログラムソースから Wind 。 ws 上で動作するプログラムを 作成する QuickWin も搭載しています。 問い合わせ先 : 03 ー 3363 ーに田 1 HIGH C386WDK 対応機種 . PC ー 9801 シリーズ 価格 . 238 , 000 円 提供 : テック情報システム株 MS-Windows 3.0 のエンノ、ンストモ ードに対応した c コンバイラです。 600 種にもおよ StWindows A 曰関数を すべてサポートしています。また , 32 ビットのネイテイプコードを生成 します。 PharLap 社の DOS 工クステン ダに対応しています。 問い合わせ先 : 043 ー 284 ー 4822 ・・・ 1 名 M に 0 畆 c 、Ⅵ” 、”ル m 「 0 ′ $ co 02 14 WATCOM C / 386 J9.0 対応機種 . PC ー 9801 シリーズ 価格 . 198 , 000 円 提供 : *LIFEBOAT 32 ビットネイテイプモードコンバイ ルが可能になるとともに , コンバイ ラ自身が 32 ビットネイテイプモード に移植されているため , 強力な最適 化機能を持つ i386 / 486CPU 専用 32 ビ ット C コンバイラです。 問い合わせ先 : 03 ー 3293 ー 47 Ⅱ ・・・・ 5 名 LSI C -86 ver 3.3 対応機種 . MS-DOS マシン 価格 : 48 , 000 円 コ日ロ - 日日 提供 : 工ル・エス・アイジャパン株 ANSI 標準規格に準拠したフルセッ ト C コンバイラ。高速かっコンバク トなオプジェクトコードを生成し , さらにインテルへキサファイル ( *. HEX) を作成できるリンカが標準装 備されています。また , ROM 化プログ ラミングが可能です。 問い合わせ先 : 03 ー 3404 ーロ 1 Power C 2.0.0J & Powe 「 Editor PED 対応機種 . PC ー 9801 シリーズ 0 価格 . 1 9 , 000 円 提供 : システム・ワン株 AN 準拠の C コンバイラとエデイタ のセット。 C コンノヾイラには System 0 V, MS-C, TurbO C と互換性のある 460 種類もの関数を用意。ェデイタはプ 1 ルダウンメニューを採用し , ェディ タから直接 , コンバイラを起動する ことも可能です。 問い合わせ先 : 03 ー 3663 ー 45 引 1 AccSys 対応機種 . PC ー 9801 シリーズ 価格 . 98 , 000 円 提供 : *LIFEBOAT c 言語から利用可能な旧 AM アプリケ ーション開発用データベースアクセ スライプラリ。データベースファイ ルの構造を気にすることなく , dBASE と同様なファイルの読み込み , 書き込み , 書き換えなどのファイル オペレーションを実現します。 問い合わせ先 : 03 ー 3293 ー 47 Ⅱ High C CompiIer 最新版 対応機種 . FM-TOWNS シリーズ 似ー、 N hC 朝 mp ーれ 4 価格 . 40 , 000 円 提供 : 富士通株 ANSI 規格に準拠した i386 専用 32 ビッ トネイティコンバイラです。生 成されたプログラムは 386 ー DOS ー Extender のもとで動作します。レジ スタ割り付けの最適化 , 共通式の削 除 / 分岐命令の最適化などオプジェ クトの効率化が図られています。 問い合わせ先 : 03-5690 ー 0032 3 名 ・・ 1 名 FM ー、 povverCver200J po 「 Editor p E D 写真はバージョン 1.4 ・・・・ 3 名 1 RED2 Ver. 2 対応機種 . PC ー 9801 シリーズ 価格 . 38 , 000 円 提供 : *LIFEBOAT マルチスクリーンタイプのフルスク リーンエデイタです。最高 20 個のフ ァイルをそれぞれ独立したウインド ウに割り当てて編集でき , 各ウイン ドウは表示位置やサイズを自由に変 更することが可能です。新たに通信 機能が追加されました。 問い合わせ先 : 03 ー 3293 ー 47 Ⅱ ・・ 1 名 16 C MAGAZINE 1 2 10