第1回 プログラミング言語C
筆者の”生き残った蔵書”からいくつか取り上げます。

相当ボロボロになっています。初版14刷発行 昭和58年2月20日です。久しぶりにパラパラめくりましたが、関数の引数宣言のスタイルが、
reverse(s)
char s[];
{
...
...
}
と表記されていたりして懐かしかったですが、最初に出てくる hello, worldを写経しておきましょうかね?記憶を手繰って、
main()
{
printf("hello, world\n");
}
ですね。このままbcc32に食わせてみましょう。このファイルhello.cのあるフォルダーで、右クリックからの“Open Git Bash here”でおけです。

プルダウンメニューの下から6番目を選択。
jakeb@Orbit-11 MINGW64 ~/OneDrive/Documents/Embarcadero/Studio/Projects/K and R C book
$ bcc32 hello.c
Embarcadero C++ 7.70 for Win32 Copyright (c) 1993-2017 Embarcadero Technologies, Inc.
hello.c:
警告 W8065 hello.c 4: プロトタイプ宣言のない関数 'printf' の呼び出し (関数 main )
警告 W8070 hello.c 5: 関数は値を返すべき (関数 main )
Turbo Incremental Link 6.99 Copyright (c) 1997-2024 Embarcadero Technologies, Inc.
jakeb@Orbit-11 MINGW64 ~/OneDrive/Documents/Embarcadero/Studio/Projects/K and R C book
$ ./hello
hello, world
warning二つが気に入らないですが、まあ昔のUnix上のcc(gccでもない)とは違うからしょうが無いですかね。Microsoftのコンパイラにも食わせてみましょう。”m$c”というフォルダーでも作って、中にhello.cを置き、フォルダーを選択した上で、右クリック”パスのコピー”を選択しておきます。検索ウインドウから”x86”とか入れて、

一番上を選択。

プロンプトに”cd “まで入れて、右クリック、

ここでリターン。

怒られた。hello.cの冒頭に#include <stdio.h>を追加して。再度cl hello.c

今度は文句ないですね。昔はbccの方がコンパイルが速かったんですが、clの方が圧倒的に速いですね。あ、もちろんBorlandもM$もIDE立ち上げてもいいですが、重いし面倒なのでコマンドラインからコンパイルおよびランしました。この本を読んでいた当時は、bds cで動かしていたはずですね。CP/M-80当時はただのCP/Mですね。復刻にあたって順番変えました。ついでなので、Debianで、
nao@ghost:~$ vi hello.c
nao@ghost:~$ cc hello.c
nao@ghost:~$ cat hello.c
#include <stdio.h>
int main()
{
printf("hello, world\n");
}
nao@ghost:~$ ./a.out
hello, world
うるさいので、黙っていただくために、ソース変更しました。cc=gccなんですが、古いスクリプトの互換性のためにccでも起動できるのかと…..。ちなみに、そのままだと、

とカラフルに文句言われます。ワーニング抑制しまくるより、ソース変更の方が速いという。

コメント