テキストエディタとは、Windows に付属のメモ帳でもかまいません。英文が書けるものなら基本的には何でもいいんです。でも、ワープロソフトなんかだと書式を飾る余計なデータが入ってしまうので使えません。ソースとは、元になるプログラムです。各言語(ここでは C言語)の文法にしたがって書かれた、テキスト形式のファイルです。
せっかく C言語 の文法にしたがってソースファイルを書いても
つまり流れとしては、ソースを書く→コンパイルする→実行するということになります。もちろん、ソースに間違えがあれば正しくコンパイルされません。また、完成して実行してみても気に入らない場合もあるでしょう。そんな場合は、もう一度ソースを書き直してコンパイルします。「面倒だなぁ」と思うかもしれませんが、簡単なソースであればコンパイルは数秒で終わってしまうのでその点は問題ないでしょう。
というわけで、テキストエディタは最悪、Win 付属のメモ帳を使うとしても、コンパイラなるものは新しく必要だということになりますね。
このコンパイラにはいろいろありますが、Windows では Microsoft の VisualStudio ファミリーである Visual C++ などが有名でしょう。しかし、はじめから Windows ライクなソフトを作るのは、はっきり言って不可能です。最初のうちは Visual C++ の持つ豊富な機能のほとんどが無駄になってしまうでしょう。最悪の場合、Visual C++ の機能をフルに生かせるようになったころには新しいバージョンが出ているなんてことにもなりかねません。とはいえ Visual C++ からは洗練された環境(テキストエディタも統合)が提供され、たとえ Windows ライクなソフトが作れなくても使いやすいのは確かでしょう。というわけで、軽い気持ちで始めようという人にはおすすめできませんし、逆にそれなりの技術レベルを身に付けようと思っているなら、こういった高性能コンパイラをひとつ用意するのもいいでしょう。
これに対して UNIX や、UNIX から派生した Linux とよばれる OS には、これらの OS 自体が C言語でかかれているということもあって、C/C++ 言語のコンパイラが標準で装備されています。つまりタダってことですね。しかしながら、UNIX を扱おうと思ったらそれだけでものすごい労力を必要とするでしょう。逆にコンパイラそのものの操作性は、基本的にコンソールからコマンドを入力して行うなど、最低限のものになっています (*3) 。Windows にもこういったフリーのコンパイラがありますが、似たようなものです。正直言って、多少の不便製を感じることもあります。
結局、問題は使いやすさと価格のどちらをとるかということになるでしょう。また、他のメーカーからもコンパイラがだされているので、このへんはみなさんの必要性にあわせて選んでください。
以前は Borland というところが出していた「Borland C++ Compiler」というコンパイラが、フリー(無償)かつシンプルなために多くのC言語入門者に愛用されていました。
けれども、近年では Microsoft が Visual Studio ファミリーの各言語における学習用バージョンとして「Express Edition」をラインナップし、無償で配布するようになりました。
初めての人には「Visual C++」の高機能さが逆に使いづらいと感じるかもしれません。しかし、慣れてくればやはり便利なのも確かですから、早々に慣れてしまいましょう。
「Visual C++ Express Edition」は2008年1月1日現在、
さて「C言語をはじめるぞ!」と意気込んで Visual Studio を用意したあなた!C言語の勉強はスムースにはじめることができたでしょうか?「ノーォォォッ!」という人が結構いるのではないでしょうか。実は私もその口でした(当時はVC++6.0でしたが)。というわけで、このページでは Visual Studio に入っている Visual C++ を使ってC言語の勉強ができるように手引きしてまいりたいと思います。 (*4)
なお、このコーナーでは、Visual Studio 2005 Professional を使用していますが、2008 や Express 版も同様に実行することができます。
VisualStudio は
統合開発環境は膨大な数のファイルを効率的に管理し、コンパイルして一つのプログラムに仕上げてくれます。さらにプログラミングを効率的に行うための機能も充実しているので大変便利です。
執筆:1999/09
このセクションのコメントは、後日、文章の内容を振り返って書き加えたものです。
僕がプログラミングを勉強したいと思った理由を少し書きます。(C言語 というより、なぜプログラミングを始めたかって感じの内容です。)
それほど大きな理由はありません。まず、開発環境が BASIC より安い(最上位の Visual C++ Ver.6 を、学割で 20,000円ぐらい)ことと、どっかで「ソフトウェア開発の多くは、現在 C言語 が主流である。」と聞いた事が最大の理由です。ただし、最近、プログラミングに詳しい方にこの話しをしたところ「世の中にはいろいろプログラミング言語があるけど、それらは、それぞれの仕事に合うように作られてきたんだ。適材適所ってやつだね。だから、C言語 が一番汎用性が高いって言う理由は特に無いと思うよ。」というようなことを言われ、納得しました。 (*5)
その他の理由としては、僕が本格的にプログラミングを始めようと思ったころは僕自身、C言語 と BASIC しかプログラミング言語を知らなかったのです。そこで、その二つを比べたのですが、Visual Basic はソフトを配布する際、専用のランタイムを相手が持っていなければいけないのに対し、C言語 はランタイムにあたる部分をプログラム本体に組み込んでしまうことが出来るという利点がありました (*6) 。また、C言語 のほうが「プロ」っぽい気がしたからです。実際、文法その他、全体的に Basic よりも難しいと思います。(難しいけりゃプロ、ってわけでもないですが。)
最後に、これは後から取ってつけた理由なんですが、みなさん Linux(リナックス) ってOS知ってますか?インターネットを結んでいるプロバイダーのコンピュータは UNIX という OS システムを使ってます。専門性の高いような感じのシステムです。これを一般の人でも使えるようにしようと、ノルウェー(だったと思う)の「リーナス(Linux の名前の元)」さんが作った OS、それが Linux で、このソフトはフリーソフトな上にプログラムのソースまで公開しているため、愛好者の間で改良が繰り返されました。その結果、今ではアンチ Windows 派を中心にマイクロソフトを脅かすほどのユーザー数を誇るようになっています。で、UNIX という OS はなんと C言語 で作られているのです (*7) 。ですので当然 UNIX 系の Linux も、C言語 で開発されてるんです。だから、「Linux(UNIX) の世界では C言語 の使える人は強い。」と言うことを友人から聞きいて「C を選んで良かった。」と思いました (*8) 。まあ、こんなところでしょうか。
僕が最初にプログラミング言語なるものに触れたのは、高校に入って自分専用のパソコンを手に入れてからです。自分専用だから、なにやっても文句は言われない。ということで、OSを起動しないとどうなるかやってみました。この時使っていたのはNEC製だったので、真っ黒な画面に N88 BASIC なるものが起動しました。幸い、父が昔からパソコンをやっていたので聞いてみると、それが N88 BASIC であることを教えてくれ、さらに、旧式パソコン (*9) に付属の BASIC の基本的な説明書もくれました。(昔はソフト売ってないからみんな自分で作っていたんですね。)何にも無い、真っ黒な画面と BASIC 言語の説明書・・・、僕がプログラミングの扉を空けた瞬間です。
僕が最初にやったことは、説明書にしたがって「1+1」の結果を画面に表示させたことです。電卓でやればあっという間ですが、これを表示させるために
CDATA[10 PRINT 1+1
次にやったことは「変数」と呼ばれるものです。
10 A = 2 (Aに2を入れる) 20 B = 3 (Bに3を入れる) 30 PRINT A+B (A と Bを足したものを表示する)
次にやったことは、ユーザーがデータを入力する方法です。
10 INPUT A (変数Aへのデータ入力を促す) 20 INPUT B (変数Bへのデータ入力を促す) 30 PRINT A+B (AとBを足したものを表示する)
次は条件判断をやりました。「もし~ならば・・・して、そうでないなら***しろ」というものです。
10 INPUT A
20 INPUT B
30 IF A < B THEN PRINT ”Aのほうが小さい” ELSE PRINT ”Bのほうが小さい”
30行目は
もし 「AのほうがBより小さい」 ならば
「Aのほうが小さい」 と表示せよ。
そうでないならば
「Bのほうが小さい」 と表示せよ。」
ということです。
その後、僕は、「行番号~に行きなさい」という「GO TO」文、「~を?回繰り返しなさい」という「FOR」文をやりました。これに、さっきの「もしも(IF)」文を混ぜると、かなり複雑なこともできるようになます。僕は次第に、”自分で”「無から有を生み出す喜び」を感じるようになって行きました。やっていることは、市販されているWindowsソフトに比べれば本当にちっぽけで、また、普通の人が見れば何の役にも立たない無駄なことかもしれません。でも、そこには、「ソフトを使うだけ」では味わうことのできない、なんともいえない「新鮮さ」がありました。
BASIC については上に書いた以上の事をするにはいたりませんでした。一度は BASIC を極めようと Windows に対応した Visual BASIC という開発言語を使ってみたのですが、それはすでに、より発展したものとして、大変複雑になっており、少しやってあきらめてしまったのです。ところが今年の春休み、インターネットを導入し、「Vector」なるサイトを見つけると、「Windows95で動くN88BASIC」なるものを見つけました。そうです、あの、僕の知っている BASIC が Windows 上でできるのです。3年前のこととはいえ、あの感動を懐かしく思いながら遊んでいました。そんな時、テレビで見たのが Linux の生みの親、リーナスさんです。考えてみればプログラマーというのは、現代の最先端の一端を支えているのです (*10) 。「プログラマーってすごいなぁ。」と思いました。無から有を作り出す喜び、時代の最先端への憧れ。僕が、本気でプログラミングの勉強をしようと考えたのはそんなことが理由です。