サンプルプログラム1−1
テスト・開発環境、ディレクトリ構成、プログラム用の保管場所 |
この開発ツールが、Windowsを対象にしていますので、検証環境は東芝製PC(dynabook RX73、Windows10 Home(64Bit))で行います。
ルート・ディレクトリにフォルダ「\borland」を作成し、その下にエンバカデロ C++コンパイラ(フォルダ名「\BCC102」)を展開します。検証用に「\borland」フォルダの下に「\program」フォルダを作成し、サンプルプログラムを保管することとします。
C:.
├─borland
│ ├─BCC102
│ │ ├─bin
│ │ ├─include
│ │ ├─lib
│ └─program
│ ├─sample_101
│ ├─sample_102
│ ├─sample_103
│ ├─sample_201
│ ├─sample_301
│ |
│ ├─freeware1
│ ├─freeware2
│ |
│ ├─software101
│ ├─software102
1-1)sample101(空白・タブ・改行のカウント)
コマンドラインプログラムの@がサンプルです。ファイルを読み込み、画面に、空白・TAB・改行数を計算して表示します。「hello, world」でもよかったのですが、よく使われているので、別のものを選びました。参考文献(プログラミング言語C、K&R)の演習1-8です。
@のソースコードをBCC32Cでコンパイル(+リンク)で実行型を作成します。結果がAです。
通常必要ないのですが、BCC32Cでオブジェクト・ファイルだけを作成し、リンカ(ilink32)を別で起動した例もBに載せます。
最後に、MAKEがCのメイク・ファイルを実行する例もDに載せています、内容は、Aと同じことが行われます。
実施した結果がEになります。
コンパイラをBCC32Xに変更して、@と同様にコンパイルした例を、Fに示します。
ここに載せたファイルは、こちら。
@ソースプログラム(sample_101.c)
// -------------------------------------------------
// sample_101.c
// Count space, TAB, CR
// 2018/06/12 Kimio Nakamura
// -------------------------------------------------
#include <stdio.h>
int main(void)
{
int c;
int ns, nt, ncr;
ns = 0;
nt = 0;
ncr = 0;
while((c = getchar()) != EOF){
if(c == '\n') ncr++;
else if(c == '\t') nt++;
else if(c == ' ') ns++;
}
printf("space: %d TAB: %d CR: %d\n",ns,nt,ncr);
return 0;
}
Aコンパイル結果(BCC32C)

Bコンパイル結果(BCC32C、ILINK32)

Cメイク・ファイル(sample_101.mak)
# sample_101.mak 2018/07/07 Kimio Nakamura
name = sample_101
${name}.obj : ${name}.c
bcc32c -w ${name}.c
Dコンパイル結果(MAKE)

E実行結果

Fコンパイル結果(BCC32X)

 |